@oddsmith/ui 1.0.5 → 1.0.6
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.
- package/README.md +8 -4
- package/dist/.shared/index.ts +5 -0
- package/dist/.shared/labels-engine/engine.d.ts +22 -0
- package/dist/.shared/labels-engine/engine.ts +70 -0
- package/dist/.shared/labels-engine/index.d.ts +1 -0
- package/dist/.shared/labels-engine/index.ts +1 -0
- package/dist/.shared/lib/lit/component.ts +10 -0
- package/dist/.shared/lib/lit/safe-custom-element.ts +12 -0
- package/dist/.shared/lib/lit/scss.ts +6 -0
- package/dist/{shared/lib/lit/template.d.ts → .shared/lib/lit/template.ts} +2 -1
- package/dist/.shared/theme-engine/animation.d.ts +5 -0
- package/dist/.shared/theme-engine/animation.ts +40 -0
- package/dist/.shared/theme-engine/default-theme.d.ts +24 -0
- package/dist/.shared/theme-engine/default-theme.ts +38 -0
- package/dist/.shared/theme-engine/engine.d.ts +22 -0
- package/dist/.shared/theme-engine/engine.ts +151 -0
- package/dist/.shared/theme-engine/index.d.ts +2 -0
- package/dist/.shared/theme-engine/index.ts +8 -0
- package/dist/assets/config/data.js +279 -0
- package/dist/assets/config/images/events/bolt.svg +4 -0
- package/dist/assets/config/images/events/boost.svg +6 -0
- package/dist/assets/config/images/events/clock.svg +4 -0
- package/dist/assets/config/images/events/fire.svg +4 -0
- package/dist/assets/config/images/events/gift.svg +5 -0
- package/dist/assets/config/images/events/star.svg +4 -0
- package/dist/assets/config/images/games/gates-of-olympus.png +0 -0
- package/dist/assets/config/labels.js +79 -0
- package/dist/assets/config/theme.js +15 -0
- package/dist/assets/icons/prize.medal.svg +5 -0
- package/dist/assets/image.fallback.png +0 -0
- package/dist/bootstrap/casino.bootstrap.d.ts +32 -0
- package/dist/bootstrap/index.d.ts +5 -0
- package/dist/constants/default-data.d.ts +8 -0
- package/dist/constants/defaults.d.ts +16 -0
- package/dist/{components/os-leaderboard-casino/constants → constants}/index.d.ts +1 -0
- package/dist/{components/os-leaderboard-casino/constants → constants}/tags.d.ts +0 -9
- package/dist/container/os-leaderboard-casino.d.ts +59 -0
- package/dist/container/os-leaderboard-casino.host.d.ts +5 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2483 -0
- package/dist/index.js.map +1 -0
- package/dist/{components/os-leaderboard-casino/sections → sections}/climb-section/climb-section.d.ts +7 -2
- package/dist/{components/os-leaderboard-casino/sections → sections}/climb-section/climb-section.host.d.ts +5 -2
- package/dist/sections/climb-section/types/labels.d.ts +8 -0
- package/dist/sections/climb-section/types/view.d.ts +13 -0
- package/dist/sections/events-banner/events-banner.d.ts +30 -0
- package/dist/sections/events-banner/events-banner.host.d.ts +15 -0
- package/dist/sections/events-banner/types/data.d.ts +18 -0
- package/dist/sections/events-banner/types/events.d.ts +8 -0
- package/dist/sections/events-banner/types/labels.d.ts +6 -0
- package/dist/sections/events-banner/types/view.d.ts +12 -0
- package/dist/{components/os-leaderboard-casino/sections → sections}/footer-section/footer-section.d.ts +4 -3
- package/dist/sections/footer-section/footer-section.host.d.ts +5 -0
- package/dist/sections/footer-section/types/view.d.ts +4 -0
- package/dist/{components/os-leaderboard-casino/sections → sections}/games-section/games-section.d.ts +8 -3
- package/dist/sections/games-section/games-section.host.d.ts +10 -0
- package/dist/sections/games-section/types/data.d.ts +7 -0
- package/dist/sections/games-section/types/labels.d.ts +6 -0
- package/dist/sections/games-section/types/view.d.ts +9 -0
- package/dist/{components/os-leaderboard-casino/sections → sections}/hero-section/hero-section.d.ts +10 -16
- package/dist/sections/hero-section/hero-section.host.d.ts +18 -0
- package/dist/sections/hero-section/types/data.d.ts +14 -0
- package/dist/sections/hero-section/types/labels.d.ts +12 -0
- package/dist/sections/hero-section/types/view.d.ts +12 -0
- package/dist/sections/index.d.ts +0 -0
- package/dist/{components/os-leaderboard-casino/sections → sections}/legals-section/legals-section.d.ts +8 -3
- package/dist/{components/os-leaderboard-casino/sections → sections}/legals-section/legals-section.host.d.ts +6 -1
- package/dist/sections/legals-section/types/data.d.ts +19 -0
- package/dist/sections/legals-section/types/labels.d.ts +5 -0
- package/dist/sections/legals-section/types/view.d.ts +6 -0
- package/dist/sections/marquee-section/marquee-item.d.ts +13 -0
- package/dist/sections/marquee-section/marquee-section.d.ts +19 -0
- package/dist/sections/marquee-section/marquee-section.host.d.ts +10 -0
- package/dist/sections/marquee-section/types/data.d.ts +18 -0
- package/dist/sections/marquee-section/types/labels.d.ts +7 -0
- package/dist/sections/marquee-section/types/view.d.ts +17 -0
- package/dist/{components/os-leaderboard-casino/sections → sections}/prize-section/prize-section.d.ts +7 -4
- package/dist/{components/os-leaderboard-casino/sections → sections}/prize-section/prize-section.host.d.ts +4 -4
- package/dist/sections/prize-section/types/data.d.ts +7 -0
- package/dist/sections/prize-section/types/events.d.ts +12 -0
- package/dist/sections/prize-section/types/labels.d.ts +11 -0
- package/dist/sections/prize-section/types/view.d.ts +12 -0
- package/dist/{components/os-leaderboard-casino/sections → sections}/stats-section/stats-section.d.ts +9 -6
- package/dist/sections/stats-section/stats-section.host.d.ts +15 -0
- package/dist/sections/stats-section/types/data.d.ts +12 -0
- package/dist/sections/stats-section/types/labels.d.ts +6 -0
- package/dist/sections/stats-section/types/view.d.ts +8 -0
- package/dist/{components/os-leaderboard-casino/sections → sections}/table-section/table-section.d.ts +17 -7
- package/dist/sections/table-section/table-section.host.d.ts +22 -0
- package/dist/sections/table-section/types/data.d.ts +24 -0
- package/dist/sections/table-section/types/events.d.ts +9 -0
- package/dist/sections/table-section/types/labels.d.ts +16 -0
- package/dist/sections/table-section/types/view.d.ts +20 -0
- package/dist/store/casino.context.d.ts +5 -0
- package/dist/store/casino.store.d.ts +37 -0
- package/dist/store/consume-store.d.ts +781 -0
- package/dist/store/index.d.ts +3 -0
- package/dist/types/config.d.ts +6 -0
- package/dist/types/data.d.ts +49 -0
- package/dist/types/host.d.ts +24 -0
- package/dist/types/index.d.ts +35 -0
- package/dist/types/labels.d.ts +43 -0
- package/dist/types/public.d.ts +23 -0
- package/dist/types/status.d.ts +1 -0
- package/dist/types/theme.d.ts +1 -0
- package/dist/utils/boolean-attr.d.ts +8 -0
- package/dist/utils/current-user.d.ts +9 -0
- package/dist/utils/data-resolve.d.ts +6 -0
- package/dist/utils/demo-countdown.d.ts +2 -0
- package/dist/utils/format.d.ts +10 -0
- package/dist/utils/image-fallback.d.ts +11 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/{components/os-leaderboard-casino/theme/vip-mark.d.ts → utils/player-name.d.ts} +1 -3
- package/dist/utils/prize-resolve.d.ts +10 -0
- package/dist/utils/safe-href.d.ts +2 -0
- package/dist/utils/safe-html.d.ts +6 -0
- package/dist/utils/status.d.ts +10 -0
- package/dist/utils/svg.d.ts +5 -0
- package/index.d.ts +5 -0
- package/index.js +3 -0
- package/os-leaderboard-casino-pro.d.ts +1 -0
- package/os-leaderboard-casino-pro.js +1 -0
- package/package.json +33 -50
- package/dist/components/os-leaderboard-casino/assets/fallback/catalog.json +0 -9
- package/dist/components/os-leaderboard-casino/assets/fallback/catalog.json.js +0 -13
- package/dist/components/os-leaderboard-casino/assets/fallback/catalog.json.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/fallback/config.json +0 -8
- package/dist/components/os-leaderboard-casino/assets/fallback/defaults/glam-sections.json +0 -564
- package/dist/components/os-leaderboard-casino/assets/fallback/fonts.json +0 -3
- package/dist/components/os-leaderboard-casino/assets/fallback/labels.json +0 -5
- package/dist/components/os-leaderboard-casino/assets/fallback/labels.json.js +0 -12
- package/dist/components/os-leaderboard-casino/assets/fallback/labels.json.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/fallback/manifest.json +0 -6
- package/dist/components/os-leaderboard-casino/assets/fallback/presets.json +0 -38
- package/dist/components/os-leaderboard-casino/assets/fallback/presets.json.js +0 -10
- package/dist/components/os-leaderboard-casino/assets/fallback/presets.json.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/fallback/resolved-presets.json +0 -603
- package/dist/components/os-leaderboard-casino/assets/fallback/resolved-presets.json.js +0 -8
- package/dist/components/os-leaderboard-casino/assets/fallback/resolved-presets.json.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/fallback/themes.json +0 -68
- package/dist/components/os-leaderboard-casino/assets/fallback/themes.json.js +0 -72
- package/dist/components/os-leaderboard-casino/assets/fallback/themes.json.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/prize.casino-credits.svg +0 -7
- package/dist/components/os-leaderboard-casino/assets/icons/prize.casino-credits.svg.js +0 -12
- package/dist/components/os-leaderboard-casino/assets/icons/prize.casino-credits.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/prize.default.svg.js +0 -12
- package/dist/components/os-leaderboard-casino/assets/icons/prize.default.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/prize.elite-bonus.svg +0 -5
- package/dist/components/os-leaderboard-casino/assets/icons/prize.elite-bonus.svg.js +0 -10
- package/dist/components/os-leaderboard-casino/assets/icons/prize.elite-bonus.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/prize.free-spins.svg +0 -10
- package/dist/components/os-leaderboard-casino/assets/icons/prize.free-spins.svg.js +0 -15
- package/dist/components/os-leaderboard-casino/assets/icons/prize.free-spins.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/prize.grand-jackpot.svg +0 -5
- package/dist/components/os-leaderboard-casino/assets/icons/prize.grand-jackpot.svg.js +0 -10
- package/dist/components/os-leaderboard-casino/assets/icons/prize.grand-jackpot.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/prize.high-roller.svg +0 -5
- package/dist/components/os-leaderboard-casino/assets/icons/prize.high-roller.svg.js +0 -10
- package/dist/components/os-leaderboard-casino/assets/icons/prize.high-roller.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/prize.mystery-bonus.svg +0 -8
- package/dist/components/os-leaderboard-casino/assets/icons/prize.mystery-bonus.svg.js +0 -13
- package/dist/components/os-leaderboard-casino/assets/icons/prize.mystery-bonus.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/stat.clock.svg +0 -4
- package/dist/components/os-leaderboard-casino/assets/icons/stat.clock.svg.js +0 -9
- package/dist/components/os-leaderboard-casino/assets/icons/stat.clock.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/stat.gift.svg.js +0 -10
- package/dist/components/os-leaderboard-casino/assets/icons/stat.gift.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/stat.users.svg.js +0 -10
- package/dist/components/os-leaderboard-casino/assets/icons/stat.users.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-down.svg.js +0 -9
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-down.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-neutral.svg.js +0 -9
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-neutral.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-up.svg.js +0 -9
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-up.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/vip.crown.svg +0 -7
- package/dist/components/os-leaderboard-casino/assets/icons/vip.crown.svg.js +0 -12
- package/dist/components/os-leaderboard-casino/assets/icons/vip.crown.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/win.bag.svg.js +0 -10
- package/dist/components/os-leaderboard-casino/assets/icons/win.bag.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/win.bolt.svg.js +0 -9
- package/dist/components/os-leaderboard-casino/assets/icons/win.bolt.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/win.coin.svg.js +0 -10
- package/dist/components/os-leaderboard-casino/assets/icons/win.coin.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/win.fire.svg.js +0 -9
- package/dist/components/os-leaderboard-casino/assets/icons/win.fire.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/win.gem.svg.js +0 -10
- package/dist/components/os-leaderboard-casino/assets/icons/win.gem.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/icons/win.trophy.svg.js +0 -10
- package/dist/components/os-leaderboard-casino/assets/icons/win.trophy.svg.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/images/games/cards.png.js +0 -5
- package/dist/components/os-leaderboard-casino/assets/images/games/cards.png.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/images/games/chips.png.js +0 -5
- package/dist/components/os-leaderboard-casino/assets/images/games/chips.png.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/images/games/dice.png.js +0 -5
- package/dist/components/os-leaderboard-casino/assets/images/games/dice.png.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/images/games/gates-of-olympus.png +0 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/gates-of-olympus.png.js +0 -5
- package/dist/components/os-leaderboard-casino/assets/images/games/gates-of-olympus.png.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/images/games/roulette.png.js +0 -5
- package/dist/components/os-leaderboard-casino/assets/images/games/roulette.png.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/images/games/slot-machine.png.js +0 -5
- package/dist/components/os-leaderboard-casino/assets/images/games/slot-machine.png.js.map +0 -1
- package/dist/components/os-leaderboard-casino/assets/images/logo.png +0 -0
- package/dist/components/os-leaderboard-casino/constants/defaults.d.ts +0 -8
- package/dist/components/os-leaderboard-casino/constants/defaults.js +0 -9
- package/dist/components/os-leaderboard-casino/constants/defaults.js.map +0 -1
- package/dist/components/os-leaderboard-casino/constants/tags.js +0 -17
- package/dist/components/os-leaderboard-casino/constants/tags.js.map +0 -1
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.d.ts +0 -35
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.host.d.ts +0 -13
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.html.js +0 -22
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.html.js.map +0 -1
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.js +0 -154
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.js.map +0 -1
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/index.d.ts +0 -36
- package/dist/components/os-leaderboard-casino/index.js +0 -39
- package/dist/components/os-leaderboard-casino/index.js.map +0 -1
- package/dist/components/os-leaderboard-casino/integration/assemble-assets.d.ts +0 -21
- package/dist/components/os-leaderboard-casino/integration/assemble-assets.js +0 -48
- package/dist/components/os-leaderboard-casino/integration/assemble-assets.js.map +0 -1
- package/dist/components/os-leaderboard-casino/integration/assets-context.d.ts +0 -26
- package/dist/components/os-leaderboard-casino/integration/assets-context.js +0 -69
- package/dist/components/os-leaderboard-casino/integration/assets-context.js.map +0 -1
- package/dist/components/os-leaderboard-casino/integration/defaults-glam.d.ts +0 -14
- package/dist/components/os-leaderboard-casino/integration/defaults-new-money.d.ts +0 -3
- package/dist/components/os-leaderboard-casino/integration/index.d.ts +0 -5
- package/dist/components/os-leaderboard-casino/integration/labels.d.ts +0 -1
- package/dist/components/os-leaderboard-casino/integration/load-assets.d.ts +0 -9
- package/dist/components/os-leaderboard-casino/integration/load-assets.js +0 -22
- package/dist/components/os-leaderboard-casino/integration/load-assets.js.map +0 -1
- package/dist/components/os-leaderboard-casino/integration/presets.d.ts +0 -1
- package/dist/components/os-leaderboard-casino/integration/resolve-input.d.ts +0 -20
- package/dist/components/os-leaderboard-casino/integration/resolve-input.js +0 -115
- package/dist/components/os-leaderboard-casino/integration/resolve-input.js.map +0 -1
- package/dist/components/os-leaderboard-casino/integration/themes.d.ts +0 -1
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.html.js +0 -48
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.html.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.js +0 -69
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.d.ts +0 -5
- package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.js +0 -118
- package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.d.ts +0 -16
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.host.d.ts +0 -8
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.js +0 -93
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.host.d.ts +0 -3
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.html.js +0 -20
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.html.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.js +0 -41
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/games-section/components/game-images.d.ts +0 -1
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.host.d.ts +0 -7
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.html.js +0 -17
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.html.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.js +0 -88
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/header-section/header-section.d.ts +0 -12
- package/dist/components/os-leaderboard-casino/sections/header-section/header-section.host.d.ts +0 -8
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.host.d.ts +0 -20
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.html.js +0 -36
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.html.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.js +0 -192
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.html.js +0 -35
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.html.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.js +0 -78
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/live-feed-section/live-feed-section.d.ts +0 -13
- package/dist/components/os-leaderboard-casino/sections/live-feed-section/live-feed-section.host.d.ts +0 -8
- package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.d.ts +0 -3
- package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.js +0 -8
- package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.d.ts +0 -14
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.js +0 -57
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.d.ts +0 -42
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.host.d.ts +0 -8
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html.js +0 -19
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.js +0 -290
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.d.ts +0 -6
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.js +0 -16
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.d.ts +0 -16
- package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.js +0 -73
- package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.html.js +0 -20
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.html.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.js +0 -137
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-band/stat-band.d.ts +0 -17
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-card/stat-card.d.ts +0 -15
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-chip/stat-chip.d.ts +0 -17
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-gauge/stat-gauge.d.ts +0 -14
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.d.ts +0 -5
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.js +0 -11
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-meter/stat-meter.d.ts +0 -17
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.d.ts +0 -17
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.js +0 -63
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.host.d.ts +0 -13
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.html.js +0 -36
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.html.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.js +0 -71
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.host.d.ts +0 -15
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.html.js +0 -40
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.html.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.js +0 -185
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.js.map +0 -1
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.scss.js +0 -5
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.scss.js.map +0 -1
- package/dist/components/os-leaderboard-casino/services/adapter.service.d.ts +0 -11
- package/dist/components/os-leaderboard-casino/services/adapter.service.js +0 -49
- package/dist/components/os-leaderboard-casino/services/adapter.service.js.map +0 -1
- package/dist/components/os-leaderboard-casino/services/icon.service.d.ts +0 -28
- package/dist/components/os-leaderboard-casino/services/icon.service.js +0 -194
- package/dist/components/os-leaderboard-casino/services/icon.service.js.map +0 -1
- package/dist/components/os-leaderboard-casino/services/index.d.ts +0 -2
- package/dist/components/os-leaderboard-casino/theme/background.d.ts +0 -4
- package/dist/components/os-leaderboard-casino/theme/background.js +0 -22
- package/dist/components/os-leaderboard-casino/theme/background.js.map +0 -1
- package/dist/components/os-leaderboard-casino/theme/index.d.ts +0 -3
- package/dist/components/os-leaderboard-casino/theme/prize-icons.d.ts +0 -1
- package/dist/components/os-leaderboard-casino/theme/prize-resolve.d.ts +0 -5
- package/dist/components/os-leaderboard-casino/theme/prize-resolve.js +0 -11
- package/dist/components/os-leaderboard-casino/theme/prize-resolve.js.map +0 -1
- package/dist/components/os-leaderboard-casino/theme/styles.d.ts +0 -9
- package/dist/components/os-leaderboard-casino/theme/styles.js +0 -179
- package/dist/components/os-leaderboard-casino/theme/styles.js.map +0 -1
- package/dist/components/os-leaderboard-casino/theme/vip-icons.d.ts +0 -2
- package/dist/components/os-leaderboard-casino/theme/vip-icons.js +0 -6
- package/dist/components/os-leaderboard-casino/theme/vip-icons.js.map +0 -1
- package/dist/components/os-leaderboard-casino/theme/vip-mark.js +0 -22
- package/dist/components/os-leaderboard-casino/theme/vip-mark.js.map +0 -1
- package/dist/components/os-leaderboard-casino/types/assets.d.ts +0 -42
- package/dist/components/os-leaderboard-casino/types/data.d.ts +0 -106
- package/dist/components/os-leaderboard-casino/types/data.js +0 -7
- package/dist/components/os-leaderboard-casino/types/data.js.map +0 -1
- package/dist/components/os-leaderboard-casino/types/events.d.ts +0 -18
- package/dist/components/os-leaderboard-casino/types/events.js +0 -8
- package/dist/components/os-leaderboard-casino/types/events.js.map +0 -1
- package/dist/components/os-leaderboard-casino/types/icons.d.ts +0 -18
- package/dist/components/os-leaderboard-casino/types/input.d.ts +0 -79
- package/dist/components/os-leaderboard-casino/types/ledger.d.ts +0 -67
- package/dist/components/os-leaderboard-casino/types/sections.d.ts +0 -200
- package/dist/components/os-leaderboard-casino/types/state.d.ts +0 -69
- package/dist/components/os-leaderboard-casino/types/state.js +0 -12
- package/dist/components/os-leaderboard-casino/types/state.js.map +0 -1
- package/dist/components/os-leaderboard-casino/utils/demo-countdown.d.ts +0 -7
- package/dist/components/os-leaderboard-casino/utils/demo-countdown.js +0 -22
- package/dist/components/os-leaderboard-casino/utils/demo-countdown.js.map +0 -1
- package/dist/shared/lib/lit/component.js +0 -8
- package/dist/shared/lib/lit/component.js.map +0 -1
- package/dist/shared/lib/lit/safe-custom-element.js +0 -7
- package/dist/shared/lib/lit/safe-custom-element.js.map +0 -1
- package/dist/shared/lib/lit/scss.js +0 -8
- package/dist/shared/lib/lit/scss.js.map +0 -1
- package/dist/shared/vendor/keen-slider-keen-slider.es.js +0 -538
- package/dist/shared/vendor/keen-slider-keen-slider.es.js.map +0 -1
- package/dist/shared/vendor/lit-element-lit-element.js +0 -45
- package/dist/shared/vendor/lit-element-lit-element.js.map +0 -1
- package/dist/shared/vendor/lit-html-directive-helpers.js +0 -32
- package/dist/shared/vendor/lit-html-directive-helpers.js.map +0 -1
- package/dist/shared/vendor/lit-html-directive.js +0 -23
- package/dist/shared/vendor/lit-html-directive.js.map +0 -1
- package/dist/shared/vendor/lit-html-keyed.js +0 -18
- package/dist/shared/vendor/lit-html-keyed.js.map +0 -1
- package/dist/shared/vendor/lit-html-lit-html.js +0 -234
- package/dist/shared/vendor/lit-html-lit-html.js.map +0 -1
- package/dist/shared/vendor/lit-html-repeat.js +0 -57
- package/dist/shared/vendor/lit-html-repeat.js.map +0 -1
- package/dist/shared/vendor/lit-html-unsafe-html.js +0 -21
- package/dist/shared/vendor/lit-html-unsafe-html.js.map +0 -1
- package/dist/shared/vendor/lit-html-unsafe-svg.js +0 -10
- package/dist/shared/vendor/lit-html-unsafe-svg.js.map +0 -1
- package/dist/shared/vendor/lit-reactive-element-base.js +0 -5
- package/dist/shared/vendor/lit-reactive-element-base.js.map +0 -1
- package/dist/shared/vendor/lit-reactive-element-css-tag.js +0 -46
- package/dist/shared/vendor/lit-reactive-element-css-tag.js.map +0 -1
- package/dist/shared/vendor/lit-reactive-element-property.js +0 -33
- package/dist/shared/vendor/lit-reactive-element-property.js.map +0 -1
- package/dist/shared/vendor/lit-reactive-element-query.js +0 -13
- package/dist/shared/vendor/lit-reactive-element-query.js.map +0 -1
- package/dist/shared/vendor/lit-reactive-element-reactive-element.js +0 -226
- package/dist/shared/vendor/lit-reactive-element-reactive-element.js.map +0 -1
- package/dist/shared/vendor/lit-reactive-element-state.js +0 -8
- package/dist/shared/vendor/lit-reactive-element-state.js.map +0 -1
- /package/dist/{shared → .shared}/lib/lit/component.d.ts +0 -0
- /package/dist/{shared → .shared}/lib/lit/safe-custom-element.d.ts +0 -0
- /package/dist/{shared → .shared}/lib/lit/scss.d.ts +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets/config}/images/games/cards.png +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets/config}/images/games/chips.png +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets/config}/images/games/dice.png +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets/config}/images/games/roulette.png +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets/config}/images/games/slot-machine.png +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/prize.default.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/stat.gift.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/stat.users.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/table.rank-down.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/table.rank-neutral.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/table.rank-up.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/win.bag.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/win.bolt.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/win.coin.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/win.fire.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/win.gem.svg +0 -0
- /package/dist/{components/os-leaderboard-casino/assets → assets}/icons/win.trophy.svg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/lit/node_modules/lit-html/lit-html.js","../../../node_modules/lit/node_modules/lit-element/lit-element.js","../../../node_modules/lit/node_modules/lit-html/directive.js","../../../node_modules/lit/node_modules/lit-html/directive-helpers.js","../../../node_modules/lit/node_modules/lit-html/directives/keyed.js","../../../node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/@lit/reactive-element/decorators/state.js","../../../node_modules/@lit/reactive-element/decorators/base.js","../../../node_modules/@lit/reactive-element/decorators/query.js","../src/.shared/lib/lit/safe-custom-element.ts","../src/.shared/lib/lit/component.ts","../src/.shared/lib/lit/scss.ts","../src/.shared/labels-engine/engine.ts","../src/constants/tags.ts","../src/.shared/theme-engine/animation.ts","../src/.shared/theme-engine/default-theme.ts","../src/.shared/theme-engine/engine.ts","../src/constants/defaults.ts","../src/utils/demo-countdown.ts","../src/assets/image.fallback.png?url","../src/utils/image-fallback.ts","../src/assets/config/images/games/chips.png?url","../src/assets/config/images/games/cards.png?url","../src/assets/config/images/games/slot-machine.png?url","../src/assets/config/images/games/roulette.png?url","../src/assets/config/images/games/dice.png?url","../src/assets/config/images/games/gates-of-olympus.png?url","../src/assets/config/images/events/bolt.svg?url","../src/assets/config/images/events/boost.svg?url","../src/constants/default-data.ts","../src/utils/status.ts","../src/utils/current-user.ts","../src/utils/prize-resolve.ts","../src/store/casino.store.ts","../../../node_modules/@lit/context/lib/context-request-event.js","../../../node_modules/@lit/context/lib/create-context.js","../../../node_modules/@lit/context/lib/controllers/context-consumer.js","../../../node_modules/@lit/context/lib/value-notifier.js","../../../node_modules/@lit/context/lib/controllers/context-provider.js","../../../node_modules/@lit/context/lib/decorators/consume.js","../src/store/casino.context.ts","../src/store/consume-store.ts","../src/utils/format.ts","../src/utils/boolean-attr.ts","../src/utils/safe-href.ts","../src/utils/safe-html.ts","../src/utils/player-name.ts","../src/utils/svg.ts","../src/utils/data-resolve.ts","../src/sections/marquee-section/marquee-item.ts","../src/sections/marquee-section/marquee-section.html?lit-html","../src/sections/marquee-section/marquee-section.ts","../src/sections/events-banner/types/events.ts","../src/sections/events-banner/events-banner.html?lit-html","../src/sections/events-banner/events-banner.ts","../src/sections/hero-section/hero-section.html?lit-html","../src/sections/hero-section/hero-section.ts","../../../node_modules/lit/node_modules/lit-html/directives/unsafe-html.js","../../../node_modules/lit/node_modules/lit-html/directives/unsafe-svg.js","../src/sections/prize-section/types/events.ts","../src/assets/icons/prize.default.svg?raw","../src/assets/icons/prize.medal.svg?raw","../src/sections/prize-section/prize-section.html?lit-html","../src/sections/prize-section/prize-section.ts","../src/assets/icons/stat.gift.svg?raw","../src/assets/icons/stat.users.svg?raw","../src/assets/icons/win.trophy.svg?raw","../src/sections/stats-section/stats-section.html?lit-html","../src/sections/stats-section/stats-section.ts","../../../node_modules/keen-slider/keen-slider.es.js","../src/sections/games-section/games-section.html?lit-html","../src/sections/games-section/games-section.ts","../src/assets/icons/table.rank-up.svg?raw","../src/assets/icons/table.rank-down.svg?raw","../src/assets/icons/table.rank-neutral.svg?raw","../src/sections/climb-section/climb-section.html?lit-html","../src/sections/climb-section/climb-section.ts","../src/sections/table-section/types/events.ts","../src/sections/table-section/table-section.html?lit-html","../src/sections/table-section/table-section.ts","../src/sections/footer-section/footer-section.html?lit-html","../src/sections/footer-section/footer-section.ts","../src/sections/legals-section/legals-section.html?lit-html","../src/sections/legals-section/legals-section.ts","../src/bootstrap/casino.bootstrap.ts","../src/container/os-leaderboard-casino.html?lit-html","../src/container/os-leaderboard-casino.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c()),this.O(c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.3\");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.2\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>o,n=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,e={HTML:1,SVG:2,MATHML:3},l=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,d=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,f=o=>o?._$litDirective$,r=o=>void 0===o.strings,s=()=>document.createComment(\"\"),v=(o,n,e)=>{const l=o._$AA.parentNode,d=void 0===n?o._$AB:n._$AA;if(void 0===e){const i=l.insertBefore(s(),d),n=l.insertBefore(s(),d);e=new t(i,n,o,o.options)}else{const t=e._$AB.nextSibling,n=e._$AM,c=n!==o;if(c){let t;e._$AQ?.(o),e._$AM=o,void 0!==e._$AP&&(t=o._$AU)!==n._$AU&&e._$AP(t)}if(t!==d||c){let o=e._$AA;for(;o!==t;){const t=i(o).nextSibling;i(l).insertBefore(o,d),o=t}}}return e},u=(o,t,i=o)=>(o._$AI(t,i),o),m={},p=(o,t=m)=>o._$AH=t,M=o=>o._$AH,h=o=>{o._$AR(),o._$AA.remove()},j=o=>{o._$AR()};export{e as TemplateResultType,j as clearPart,M as getCommittedValue,f as getDirectiveClass,v as insertPart,d as isCompiledTemplateResult,c as isDirectiveResult,n as isPrimitive,r as isSingleExpression,l as isTemplateResult,h as removePart,u as setChildPartValue,p as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{nothing as r}from\"../lit-html.js\";import{directive as t,Directive as e}from\"../directive.js\";import{setCommittedValue as s}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const i=t(class extends e{constructor(){super(...arguments),this.key=r}render(r,t){return this.key=r,t}update(r,[t,e]){return t!==this.key&&(s(r),this.key=t),e}});export{i as keyed};\n//# sourceMappingURL=keyed.js.map\n","import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","/**\n * Registers a custom element only if the tag is not already in the registry.\n * Use instead of Lit's `@customElement` when HMR or duplicate bundles are possible.\n */\nexport function customElement(tag: string) {\n return <T extends CustomElementConstructor>(cls: T): T => {\n if (!customElements.get(tag)) {\n customElements.define(tag, cls);\n }\n return cls;\n };\n}\n","import { customElement } from './safe-custom-element.js';\n\nexport interface ComponentOptions {\n selector: string;\n}\n\n/** Angular-style `@Component` — registers a Lit class as a custom element. */\nexport function Component(options: ComponentOptions) {\n return customElement(options.selector);\n}\n","import { unsafeCSS, type CSSResult } from '@lit/reactive-element/css-tag.js';\n\n/** Compiled SCSS string → adoptable shadow-root stylesheet. */\nexport function scss(stylesheet: string): CSSResult {\n return unsafeCSS(stylesheet);\n}\n","/**\n * Generic labels bag — any component's `labels.json` shape.\n * Component-specific types (e.g. LeaderboardLabels) live next to that component.\n */\nexport type LabelsMap = Record<string, string>;\n\nfunction flattenLabels(\n value: unknown,\n prefix = '',\n out: LabelsMap = {},\n): LabelsMap {\n if (typeof value === 'string') {\n if (prefix) out[prefix] = value;\n return out;\n }\n if (value != null && typeof value === 'object') {\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n const path = prefix ? `${prefix}.${key}` : key;\n flattenLabels(child, path, out);\n }\n }\n return out;\n}\n\n/**\n * Stamps a labels bag on a host and can reverse that stamp.\n * Nested objects are flattened to dotted keys (`hero.pool`).\n * {@link LabelsEngine.get} walks out of shadow roots to find that host.\n */\nexport class LabelsEngine {\n private static readonly labels = new WeakMap<object, LabelsMap>();\n\n apply(host: object, labels: object): void {\n LabelsEngine.labels.set(host, flattenLabels(labels));\n }\n\n clear(host: object): void {\n LabelsEngine.labels.delete(host);\n }\n\n /**\n * Resolves one label key from the stamped host, or from a descendant\n * (walks parent elements and shadow hosts).\n * Missing or empty values return `'n/a'`.\n */\n static get(from: object, key: string): string {\n const host = LabelsEngine.resolveHost(from);\n const value = host != null ? LabelsEngine.labels.get(host)?.[key] : undefined;\n return value != null && value !== '' ? value : 'n/a';\n }\n\n private static resolveHost(from: object): object | null {\n if (LabelsEngine.labels.has(from)) return from;\n if (!(from instanceof Node)) return null;\n\n let node: Node | null = from;\n while (node) {\n if (node instanceof Element && LabelsEngine.labels.has(node)) {\n return node;\n }\n if (node instanceof Element && node.parentElement) {\n node = node.parentElement;\n continue;\n }\n const root = node.getRootNode();\n node = root instanceof ShadowRoot ? root.host : null;\n }\n return null;\n }\n}\n","/** Root custom element for the package. */\nexport const OS_LEADERBOARD_CASINO_TAG = 'os-leaderboard-casino';\n\n/** Section custom elements. */\nexport const OS_LEADERBOARD_CASINO_EVENTS =\n 'os-leaderboard-casino-events';\nexport const OS_LEADERBOARD_CASINO_HERO = 'os-leaderboard-casino-hero';\nexport const OS_LEADERBOARD_CASINO_PRIZE = 'os-leaderboard-casino-prize';\nexport const OS_LEADERBOARD_CASINO_STATS = 'os-leaderboard-casino-stats';\nexport const OS_LEADERBOARD_CASINO_TABLE =\n 'os-leaderboard-casino-table';\nexport const OS_LEADERBOARD_CASINO_FOOTER =\n 'os-leaderboard-casino-footer';\nexport const OS_LEADERBOARD_CASINO_MARQUEE =\n 'os-leaderboard-casino-marquee';\nexport const OS_LEADERBOARD_CASINO_CLIMB = 'os-leaderboard-casino-climb';\nexport const OS_LEADERBOARD_CASINO_GAMES = 'os-leaderboard-casino-games';\nexport const OS_LEADERBOARD_CASINO_LEGALS =\n 'os-leaderboard-casino-legals';\n","const THEME_TRANSITION_CLASS = 'os-theme-transition';\nconst THEME_TRANSITION_MS = 500;\nconst THEME_TRANSITION_DELAY_MS = 500;\n\nfunction prefersReducedMotion(): boolean {\n return (\n typeof matchMedia !== 'undefined' &&\n matchMedia('(prefers-reduced-motion: reduce)').matches\n );\n}\n\n/**\n * Runs `apply` while a short-lived transition class is on `nodes`.\n * Skipped when `animate` is false or the user prefers reduced motion.\n */\nexport function withThemeTransition(\n nodes: HTMLElement[],\n animate: boolean,\n apply: () => void,\n): void {\n const runAnimation = animate && !prefersReducedMotion();\n\n if (runAnimation) {\n for (const node of nodes) {\n node.classList.add(THEME_TRANSITION_CLASS);\n }\n void nodes[0]?.offsetHeight;\n }\n\n apply();\n\n if (runAnimation) {\n const totalMs = THEME_TRANSITION_DELAY_MS + THEME_TRANSITION_MS + 80;\n window.setTimeout(() => {\n for (const node of nodes) {\n node.classList.remove(THEME_TRANSITION_CLASS);\n }\n }, totalMs);\n }\n}\n","/**\n * Palette bag. Operator chrome colors — not campaign content.\n *\n * Host `.theme` is mixed onto glam {@link DEFAULT_THEME} per key.\n * `background` and `surface` are CSS backgrounds (solid color or gradient).\n * `fontDisplay` / `fontBody` / `fontMono` are CSS `font-family` stacks.\n * The component does not load font files — the host must.\n */\nexport type LeaderboardTheme = {\n background: string;\n surface: string;\n text: string;\n textMuted: string;\n primary: string;\n secondary: string;\n success: string;\n danger: string;\n borderRadius: string;\n fontDisplay: string;\n fontBody: string;\n fontMono: string;\n};\n\n/** Glam palette used when the host omits `.theme`. */\nexport const DEFAULT_THEME: LeaderboardTheme = {\n background: '#181622',\n surface: 'rgba(26, 19, 42, 0.78)',\n text: '#f7f3ff',\n textMuted: '#ab9fce',\n primary: '#f5c451',\n secondary: '#9d6bff',\n success: '#41e6a5',\n danger: '#ff5d7c',\n borderRadius: '20px',\n fontDisplay: \"'Sora', system-ui, sans-serif\",\n fontBody: \"'Inter', system-ui, sans-serif\",\n fontMono: \"ui-monospace, 'JetBrains Mono', monospace\",\n};\n","import { withThemeTransition } from './animation.js';\nimport { DEFAULT_THEME, type LeaderboardTheme } from './default-theme.js';\n\nexport type ThemeEngineOptions = {\n /** Animate color token changes on the host. */\n animate?: boolean;\n /** Prefix for mix/validation console.error. */\n logPrefix?: string;\n};\n\n/** CSS custom properties stamped from the 12 host keys. */\nconst THEME_CSS_VARS: Record<keyof LeaderboardTheme, `--${string}`> = {\n background: '--background',\n surface: '--surface',\n text: '--text',\n textMuted: '--text-muted',\n primary: '--primary',\n secondary: '--secondary',\n success: '--success',\n danger: '--danger',\n borderRadius: '--border-radius',\n fontDisplay: '--font-display',\n fontBody: '--font-body',\n fontMono: '--font-mono',\n};\n\nconst CSS_PROPERTY: Record<\n Exclude<keyof LeaderboardTheme, 'fontDisplay' | 'fontBody' | 'fontMono'>,\n string\n> = {\n background: 'background',\n surface: 'background',\n text: 'color',\n textMuted: 'color',\n primary: 'color',\n secondary: 'color',\n success: 'color',\n danger: 'color',\n borderRadius: 'border-radius',\n};\n\n/**\n * Mixes a host palette onto {@link DEFAULT_THEME} and stamps the 12 keys\n * as CSS vars on the host.\n */\nexport class ThemeEngine {\n private host: HTMLElement | null = null;\n private stamped: LeaderboardTheme | null = null;\n\n apply(\n host: HTMLElement,\n input?: Partial<LeaderboardTheme> | null,\n options: ThemeEngineOptions = {},\n ): void {\n const theme = this.resolveTheme(input, options.logPrefix);\n withThemeTransition([host], options.animate === true, () => {\n this.unstamp();\n for (const key of Object.keys(THEME_CSS_VARS) as (keyof LeaderboardTheme)[]) {\n host.style.setProperty(THEME_CSS_VARS[key], theme[key]);\n }\n this.host = host;\n this.stamped = theme;\n });\n }\n\n clear(host: HTMLElement, options: ThemeEngineOptions = {}): void {\n withThemeTransition([host], options.animate === true, () => {\n this.unstamp(host);\n this.host = null;\n this.stamped = null;\n });\n }\n\n private unstamp(host: HTMLElement | null = this.host): void {\n if (host == null || this.stamped == null) return;\n for (const varName of Object.values(THEME_CSS_VARS)) {\n host.style.removeProperty(varName);\n }\n }\n\n private resolveTheme(\n input?: Partial<LeaderboardTheme> | null,\n logPrefix = '[os-leaderboard-casino]',\n ): LeaderboardTheme {\n return {\n background: this.pickCss(input, 'background', logPrefix),\n surface: this.pickCss(input, 'surface', logPrefix),\n text: this.pickCss(input, 'text', logPrefix),\n textMuted: this.pickCss(input, 'textMuted', logPrefix),\n primary: this.pickCss(input, 'primary', logPrefix),\n secondary: this.pickCss(input, 'secondary', logPrefix),\n success: this.pickCss(input, 'success', logPrefix),\n danger: this.pickCss(input, 'danger', logPrefix),\n borderRadius: this.pickCss(input, 'borderRadius', logPrefix),\n fontDisplay: this.pickFont(input, 'fontDisplay', logPrefix),\n fontBody: this.pickFont(input, 'fontBody', logPrefix),\n fontMono: this.pickFont(input, 'fontMono', logPrefix),\n };\n }\n\n private pickCss(\n input: Partial<LeaderboardTheme> | null | undefined,\n key: keyof typeof CSS_PROPERTY,\n logPrefix: string,\n ): string {\n const fallback = DEFAULT_THEME[key];\n if (input == null || !Object.prototype.hasOwnProperty.call(input, key)) {\n return fallback;\n }\n const raw = input[key];\n if (typeof raw !== 'string' || raw.trim() === '') {\n console.error(\n `${logPrefix} theme.${key} is missing or empty; using default.`,\n );\n return fallback;\n }\n if (!this.cssSupports(CSS_PROPERTY[key], raw)) {\n console.error(\n `${logPrefix} theme.${key} is invalid CSS (${JSON.stringify(raw)}); using default.`,\n );\n return fallback;\n }\n return raw;\n }\n\n private pickFont(\n input: Partial<LeaderboardTheme> | null | undefined,\n key: 'fontDisplay' | 'fontBody' | 'fontMono',\n logPrefix: string,\n ): string {\n const fallback = DEFAULT_THEME[key];\n if (input == null || !Object.prototype.hasOwnProperty.call(input, key)) {\n return fallback;\n }\n const raw = input[key];\n if (typeof raw !== 'string' || raw.trim() === '') {\n console.error(\n `${logPrefix} theme.${key} is missing or empty; using default.`,\n );\n return fallback;\n }\n return raw;\n }\n\n private cssSupports(property: string, value: string): boolean {\n if (typeof CSS === 'undefined' || typeof CSS.supports !== 'function') {\n return value.trim() !== '';\n }\n return CSS.supports(property, value);\n }\n}\n","import type { CasinoSectionConfig, SectionId } from '../types/config.js';\nimport type { LeaderboardLabels } from '../types/labels.js';\n\nexport { DEFAULT_THEME } from '@oddsmith/theme-engine';\n\nexport const DEFAULT_LAYOUT_SECTIONS: readonly CasinoSectionConfig[] = [\n { name: 'marquee', order: 1 },\n { name: 'events', order: 2 },\n { name: 'hero', order: 3 },\n { name: 'prize', order: 4 },\n { name: 'stats', order: 5 },\n { name: 'games', order: 6 },\n { name: 'climb', order: 7 },\n { name: 'table', order: 8 },\n { name: 'footer', order: 9 },\n { name: 'legals', order: 10 },\n];\n\n/** Built-in layout. Regular has no `.config` host prop — this is that config. */\nexport const DEFAULT_LAYOUT = {\n sections: DEFAULT_LAYOUT_SECTIONS,\n} as const;\n\nexport function orderedLayoutSectionIds(\n layout: { readonly sections: readonly CasinoSectionConfig[] } = DEFAULT_LAYOUT,\n): SectionId[] {\n return [...layout.sections]\n .sort((a, b) => a.order - b.order)\n .map((section) => section.name);\n}\n\n/** English chrome copy used only when the host omits `.labels`. */\nexport const DEFAULT_LABELS: LeaderboardLabels = {\n cta: {\n label: 'Enter the Leaderboard',\n finished: 'View Final Standings',\n },\n status: {\n upcoming: 'Upcoming',\n active: 'Live',\n completed: 'Finished',\n cancelled: 'Cancelled',\n },\n hero: {\n pool: 'Total prize pool',\n rising: 'rising',\n startsIn: 'Starts in',\n endsIn: 'Ends in',\n days: 'days',\n hours: 'hours',\n min: 'min',\n sec: 'sec',\n finished: 'Contest finished',\n },\n prize: {\n title: 'Prize Pool',\n champion: 'Champion',\n second: '2nd place',\n third: '3rd place',\n rank: 'Rank',\n medal: 'Rank {rank} medal',\n empty: 'No prizes yet.',\n },\n stats: {\n participants: 'Participants',\n prizeTiers: 'Prize Tiers',\n biggestWin: 'Biggest Win',\n },\n games: {\n title: 'Qualifying Games',\n hint: 'every bet earns points',\n empty: 'No games yet.',\n },\n climb: {\n title: 'Your climb',\n points: 'pts',\n toReachTop: 'to reach top',\n next: 'next:',\n steady: 'steady',\n },\n table: {\n title: 'Top Players',\n rank: 'Rank',\n player: 'Player',\n games: 'Games',\n winRate: 'Win rate',\n percent: '%',\n totalBet: 'Total bet',\n points: 'Points',\n change: 'Change',\n you: 'You',\n yourPosition: 'Your position',\n empty: 'No players yet.',\n },\n marquee: {\n won: 'won',\n on: 'on',\n aria: 'Recent winners',\n empty: 'No winners yet.',\n },\n events: {\n tag: 'Event',\n aria: 'Promotions',\n empty: 'No events yet.',\n },\n legals: {\n close: 'Close',\n empty: 'No legal links yet.',\n },\n};\n\nexport const DEFAULT_EVENTS_ROTATE_MS = 4500;\n\n/** Public URL base for producer-emitted free packs (sandbox / playground / website). */\nexport const LEADERBOARD_CASINO_DEFAULT_ASSETS_BASE =\n '/os-leaderboard-casino-config/free';\n","/** Default glam demo countdown — ~3d 14h. */\nconst DEMO_COUNTDOWN_MS =\n 3 * 24 * 60 * 60 * 1000 + 14 * 60 * 60 * 1000;\n\nexport function demoCountdownEndIso(now = Date.now()): string {\n return new Date(now + DEMO_COUNTDOWN_MS).toISOString();\n}\n\nfunction countdownRemainingMs(endTs: string, now = Date.now()): number {\n return new Date(endTs).getTime() - now;\n}\n\nexport function isCountdownExpired(endTs: string, now = Date.now()): boolean {\n const remaining = countdownRemainingMs(endTs, now);\n return !Number.isFinite(remaining) || remaining <= 0;\n}\n","export default \"data:image/png;base64,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\"","import imageFallbackUrl from '../assets/image.fallback.png?url';\n\n/** Bundled placeholder when a host `games[].imageUrl` fails to load. */\nexport const GAME_IMAGE_FALLBACK = imageFallbackUrl;\n\n/** Bundled placeholder when a host `events.items[].imageUrl` fails to load. */\nexport const EVENT_IMAGE_FALLBACK = imageFallbackUrl;\n\n/** Same DiceBear lorelei URL the demo campaign uses. */\nexport function dicebearAvatarUrl(username: string): string {\n return `https://api.dicebear.com/9.x/lorelei/svg?seed=${encodeURIComponent(username)}`;\n}\n\n/**\n * Swap a broken `<img>` to `fallbackSrc` once.\n * A data flag stops an error loop if the fallback also fails.\n */\nexport function applyImageFallback(event: Event, fallbackSrc: string): void {\n const img = event.currentTarget as HTMLImageElement | null;\n if (img == null || img.dataset.fallbackApplied === 'true') return;\n img.dataset.fallbackApplied = 'true';\n img.src = fallbackSrc;\n}\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20width='100%25'%20height='100%25'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20aria-hidden='true'%3e%3cpath%20d='M13%202%204%2014h6l-1%208%209-12h-6l1-8Z'%20fill='%23f5c451'%20opacity='0.35'/%3e%3cpath%20d='M13%202%204%2014h6l-1%208%209-12h-6l1-8Z'%20stroke='%23f5c451'%20stroke-width='1.5'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20width='100%25'%20height='100%25'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20aria-hidden='true'%3e%3cpath%20d='M4%2020%209%209l6%206-11%205Z'%20fill='%239d6bff'%20opacity='0.35'/%3e%3cpath%20d='M4%2020%209%209l6%206-11%205Z'%20stroke='%239d6bff'%20stroke-width='1.5'%20stroke-linejoin='round'/%3e%3cpath%20d='M14%203v3M19%205l-2%202M21%2010h-3'%20stroke='%23c4a6ff'%20stroke-width='1.5'%20stroke-linecap='round'/%3e%3ccircle%20cx='15.5'%20cy='8.5'%20r='2.5'%20fill='%23c4a6ff'%20opacity='0.55'/%3e%3c/svg%3e\"","import type {\n EventItemData,\n GameData,\n LeaderboardData,\n MarqueeItemData,\n PlayerData,\n PrizeData,\n} from '@os-leaderboard-casino/types';\nimport { demoCountdownEndIso } from '../utils/demo-countdown.js';\nimport { dicebearAvatarUrl } from '../utils/image-fallback.js';\n\nimport chipsUrl from '../assets/config/images/games/chips.png?url';\nimport cardsUrl from '../assets/config/images/games/cards.png?url';\nimport slotMachineUrl from '../assets/config/images/games/slot-machine.png?url';\nimport rouletteUrl from '../assets/config/images/games/roulette.png?url';\nimport diceUrl from '../assets/config/images/games/dice.png?url';\nimport gatesUrl from '../assets/config/images/games/gates-of-olympus.png?url';\nimport boltUrl from '../assets/config/images/events/bolt.svg?url';\nimport boostUrl from '../assets/config/images/events/boost.svg?url';\n\nconst GAME_IMAGE: Record<string, string> = {\n chips: chipsUrl,\n cards: cardsUrl,\n 'slot-machine': slotMachineUrl,\n roulette: rouletteUrl,\n dice: diceUrl,\n 'gates-of-olympus': gatesUrl,\n};\n\nconst DEFAULT_PRIZES: PrizeData[] = [\n { prizeId: 'grand-jackpot', label: 'Grand Jackpot', value: 25_000 },\n { prizeId: 'vault-surge', label: 'Vault Surge test 1', value: 10_000 },\n { prizeId: 'phantom-cache', label: 'Phantom Cache', value: 2_500 },\n { prizeId: 'casino-credits', label: 'Casino Credits', value: 1_000 },\n { prizeId: 'free-spins-10', label: 'Free Spins ×10', value: 100 },\n { prizeId: 'mystery-bonus-drop', label: 'Mystery Bonus Drop', value: 50 },\n];\n\nfunction demoTableStats(rank: number): {\n gamesPlayed: number;\n winRate: number;\n previousRank: number;\n} {\n const index = rank - 1;\n const rankShift = [2, -1, 0, 3, -2, 1, 0, -1, 2, 0][index % 10] ?? 0;\n return {\n gamesPlayed: Math.round(820 - index * 24 + (index % 4) * 35),\n winRate: Math.max(44, Math.min(71, 69 - index * 2 + (index % 3))),\n previousRank: rank + rankShift,\n };\n}\n\nconst USERNAMES = [\n 'krakenbet',\n 'marisol_v',\n 'mr_midnight',\n 'piotr_k',\n 'bl4ze77',\n 'ghostchip',\n 'LunaX',\n 'soyuz3',\n 'NovaBet',\n 'tundra_rex',\n] as const;\n\nfunction defaultPlayers(): PlayerData[] {\n const ranked: PlayerData[] = USERNAMES.map((username, i) => {\n const place = i + 1;\n const points = Math.round(184_200 / (1 + i * 0.42));\n return {\n id: username,\n username,\n points,\n totalBet:\n place === 1\n ? 1_200_000\n : place === 2\n ? 920_000\n : place === 3\n ? 810_000\n : Math.round(points * (1.9 + place * 0.05)),\n isYou: false,\n avatarUrl: dicebearAvatarUrl(username),\n ...demoTableStats(place),\n };\n });\n ranked.push({\n id: 'deep_cut',\n username: 'deep_cut',\n points: 28_460,\n totalBet: 142_800,\n isYou: true,\n avatarUrl: dicebearAvatarUrl('deep_cut'),\n ...demoTableStats(11),\n previousRank: 13,\n });\n return ranked;\n}\n\nconst DEFAULT_GAMES: GameData[] = [\n { id: 'chips', title: 'Golden Chips' },\n { id: 'cards', title: 'VIP Baccarat' },\n { id: 'slot-machine', title: 'Mega Fortune' },\n { id: 'roulette', title: 'Lightning Roulette' },\n { id: 'dice', title: 'Crystal Dice' },\n { id: 'gates-of-olympus', title: 'Gates of Olympus' },\n].map((game) => ({\n ...game,\n ...(GAME_IMAGE[game.id] != null ? { imageUrl: GAME_IMAGE[game.id] } : {}),\n}));\n\nconst DEFAULT_MARQUEE_ITEMS: MarqueeItemData[] = [\n { id: 'win-krakenbet', username: 'krakenbet', gameId: 'slot-machine', amount: 4200 },\n { id: 'win-marisol', username: 'marisol_v', gameId: 'roulette', amount: 1800 },\n { id: 'win-mr-midnight', username: 'mr_midnight', gameId: 'cards', amount: 9600, big: true },\n { id: 'win-ghostchip', username: 'ghostchip', gameId: 'dice', amount: 2450 },\n { id: 'win-lunax', username: 'LunaX', gameId: 'gates-of-olympus', amount: 7800, big: true },\n];\n\nconst DEFAULT_EVENTS: EventItemData[] = [\n {\n eventId: 'double-points-weekend',\n title: 'Double points weekend',\n subtitle: 'All slots count 2× toward the board',\n color: '#f5c451',\n imageUrl: boltUrl,\n },\n {\n eventId: 'high-roller-boost',\n title: 'High roller boost',\n subtitle: 'Tables over $500 qualify for bonus tiers',\n color: '#9d6bff',\n imageUrl: boostUrl,\n },\n];\n\nconst TERMS_BODY =\n 'This promotion is open to all registered players aged 18 or over. Participation is subject to the standard Terms & Conditions applicable to all promotions. Prize winnings are credited as bonus funds and are subject to a 20× wagering requirement before withdrawal. The leaderboard is updated in real time and rankings are final at the time the campaign ends. The operator reserves the right to amend or cancel this promotion at any time without prior notice.';\n\nconst RESPONSIBLE_GAMING_BODY =\n 'Responsible gambling tools are available in your account settings at all times. If you need support, contact your operator or a local helpline.';\n\n/**\n * Hardcoded campaign used when the host omits `.data`, and as the mix\n * fallback for omitted keys on a partial bag.\n *\n * Clocks are computed at call time so a mounted instance with no `.data` stays live.\n */\nexport function buildDefaultData(now = Date.now()): LeaderboardData {\n return {\n hero: {\n title: 'Midnight Millions',\n description: 'Climb the board before the timer hits zero.',\n startsAt: new Date(now - 7 * 24 * 60 * 60 * 1000).toISOString(),\n endsAt: demoCountdownEndIso(now),\n prizePool: 128_450,\n },\n currency: 'USD',\n locale: 'en-US',\n stats: {\n participants: 12_842,\n prizes: DEFAULT_PRIZES.length,\n biggestWin: 9_600,\n },\n games: DEFAULT_GAMES,\n prizes: DEFAULT_PRIZES,\n players: defaultPlayers(),\n marquee: {\n speedSec: 30,\n items: DEFAULT_MARQUEE_ITEMS,\n },\n events: {\n rotateMs: 5000,\n items: DEFAULT_EVENTS,\n },\n legals: {\n links: [\n {\n type: 'internal',\n label: 'Terms & Conditions',\n body: TERMS_BODY,\n },\n {\n type: 'internal',\n label: 'Responsible Gaming',\n body: RESPONSIBLE_GAMING_BODY,\n },\n {\n type: 'external',\n label: 'Privacy Policy',\n href: 'https://oddsmith.io',\n },\n ],\n },\n };\n}\n","import type { LeaderboardStatus } from '../types/status.js';\n\n/**\n * Derive campaign status from timestamps and an explicit cancel flag.\n * `cancelled: true` wins. No timestamps → active.\n */\nexport function deriveLeaderboardStatus(\n data: { startsAt?: string; endsAt?: string; cancelled?: boolean },\n now = Date.now(),\n): LeaderboardStatus {\n if (data.cancelled === true) return 'cancelled';\n\n const startMs = data.startsAt != null ? Date.parse(data.startsAt) : Number.NaN;\n if (Number.isFinite(startMs) && now < startMs) return 'upcoming';\n\n const endMs = data.endsAt != null ? Date.parse(data.endsAt) : Number.NaN;\n if (Number.isFinite(endMs) && now >= endMs) return 'completed';\n\n return 'active';\n}\n","/**\n * Current-user flag. Only boolean `true` counts.\n * `false`, omit, `1`, `0`, and `\"true\"` are not you.\n */\nexport function isYouFlag(value: unknown): boolean {\n return value === true;\n}\n\n/** First `isYou: true` in array order. Later flags are ignored. */\nexport function findCurrentUser<T extends { isYou?: unknown }>(\n players: readonly T[],\n): T | undefined {\n return players.find((player) => isYouFlag(player.isYou));\n}\n","import type { PrizeItem } from '../sections/prize-section/types/view.js';\nimport type { PrizeData } from '../sections/prize-section/types/data.js';\n\n/** Highest value first. Place is 1-based after this sort. */\nexport function prizesByValue<T extends { value: number }>(prizes: T[]): T[] {\n return [...prizes].sort((a, b) => b.value - a.value);\n}\n\n/** Prize for a 1-based place (array order of value-sorted prizes). */\nexport function prizeForPlace(\n prizes: PrizeItem[],\n place: number,\n): PrizeItem | undefined {\n return prizes.find((prize) => prize.place === place);\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\nexport function toPrizeItems(\n prizes: PrizeData[],\n currency: string,\n locale: string,\n): PrizeItem[] {\n return prizesByValue(prizes).map((prize, index) => ({\n prizeId: prize.prizeId,\n label: prize.label,\n value: prize.value,\n currency,\n locale,\n place: index + 1,\n }));\n}\n","import type {\n LeaderboardData,\n LeaderboardStatus,\n HeroView,\n PrizeView,\n StatsView,\n GamesView,\n ClimbView,\n TablePlayer,\n TableView,\n MarqueeView,\n EventsBannerView,\n FooterView,\n LegalsView,\n PlayerData,\n} from '@os-leaderboard-casino/types';\nimport { deriveLeaderboardStatus } from '../utils/status.js';\nimport { findCurrentUser } from '../utils/current-user.js';\nimport { toPrizeItems } from '../utils/prize-resolve.js';\nimport type { PrizeItem } from '../sections/prize-section/types/view.js';\n\n/**\n * Data-only store for a single board instance.\n * Bootstrap hydrates once; sections pull view slices via getters.\n *\n * Views are projected from {@link LeaderboardData} only — no demo/fallback fill-in.\n * Image URLs are copied from host data as-is.\n */\nexport class CasinoStore {\n private data: LeaderboardData | null = null;\n private demo = false;\n /** Demo countdown roll — only if the campaign was not already over at hydrate. */\n private demoRollClock = false;\n\n hydrate(data: LeaderboardData, demo = false): void {\n this.data = structuredClone(data);\n this.demo = demo === true;\n const initial = deriveLeaderboardStatus(this.data.hero);\n this.demoRollClock =\n this.demo && initial !== 'completed' && initial !== 'cancelled';\n if (\n this.data.prizes != null &&\n this.data.prizes.length > 0 &&\n this.data.prizes.length < 3\n ) {\n console.error(\n '[os-leaderboard-casino] prizes needs at least 3 entries for the podium.',\n );\n }\n }\n\n clear(): void {\n this.data = null;\n this.demo = false;\n this.demoRollClock = false;\n }\n\n isReady(): boolean {\n return this.data != null;\n }\n\n isDemo(): boolean {\n return this.demo;\n }\n\n getData(): LeaderboardData {\n return this.requireData();\n }\n\n /**\n * Derived from data.hero startsAt / endsAt / cancelled.\n * Demo boards that loaded already finished stay finished.\n * Demo boards that were live at hydrate keep `active` so the hero can roll the clock.\n */\n getStatus(now = Date.now()): LeaderboardStatus {\n const derived = deriveLeaderboardStatus(this.requireData().hero, now);\n if (this.demoRollClock && derived === 'completed') return 'active';\n return derived;\n }\n\n isCampaignOver(now = Date.now()): boolean {\n const status = this.getStatus(now);\n return status === 'completed' || status === 'cancelled';\n }\n\n getHeroView(): HeroView {\n const data = this.requireData();\n const hero = data.hero;\n return {\n title: hero.title,\n ...(hero.description != null && hero.description !== ''\n ? { description: hero.description }\n : {}),\n ...(hero.startsAt != null ? { startsAt: hero.startsAt } : {}),\n ...(hero.endsAt != null ? { endsAt: hero.endsAt } : {}),\n status: this.getStatus(),\n currency: data.currency,\n locale: data.locale,\n prizePoolValue: hero.prizePool,\n };\n }\n\n getPrizeView(): PrizeView | undefined {\n const data = this.requireData();\n if (data.prizes == null) return undefined;\n if (data.prizes.length > 0 && data.prizes.length < 3) return undefined;\n\n return {\n prizes: toPrizeItems(data.prizes, data.currency, data.locale),\n };\n }\n\n getStatsView(): StatsView | undefined {\n const data = this.requireData();\n if (data.stats == null) return undefined;\n\n return {\n participants: data.stats.participants,\n prizes: data.stats.prizes,\n biggestWin: data.stats.biggestWin,\n biggestWinCurrency: data.currency,\n locale: data.locale,\n };\n }\n\n getGamesView(): GamesView | undefined {\n const data = this.requireData();\n if (data.games == null) return undefined;\n\n return {\n games: data.games.map((game) => ({\n id: game.id,\n title: game.title,\n ...(game.imageUrl != null ? { imageUrl: game.imageUrl } : {}),\n })),\n };\n }\n\n getClimbView(): ClimbView | undefined {\n if (this.isCampaignOver()) return undefined;\n\n const data = this.requireData();\n const players = data.players ?? [];\n const you = findCurrentUser(players);\n if (you == null) return undefined;\n const youIndex = players.indexOf(you);\n const rank = youIndex + 1;\n const prizes = toPrizeItems(\n data.prizes ?? [],\n data.currency,\n data.locale,\n );\n\n const trend =\n you.previousRank != null ? { trend: you.previousRank - rank } : {};\n\n const nextIndex =\n youIndex === 0\n ? -1\n : youIndex < prizes.length\n ? youIndex - 1\n : prizes.length - 1;\n\n if (nextIndex < 0) {\n return {\n username: you.username,\n rank,\n points: you.points,\n locale: data.locale,\n pointsToNextTier: 0,\n progress: 1,\n ...trend,\n };\n }\n\n const nextTier = prizes[nextIndex];\n const cutoff = players[nextIndex];\n const targetPoints = cutoff?.points;\n const pointsToNextTier =\n targetPoints != null ? Math.max(0, targetPoints - you.points) : 0;\n const progress =\n targetPoints != null && targetPoints > 0\n ? Math.min(1, Math.max(0, you.points / targetPoints))\n : 0;\n\n return {\n username: you.username,\n rank,\n points: you.points,\n locale: data.locale,\n ...(nextTier != null\n ? { nextTierRank: nextTier.place, nextTierLabel: nextTier.label }\n : {}),\n pointsToNextTier,\n progress,\n ...trend,\n };\n }\n\n getTableView(): TableView | undefined {\n const data = this.requireData();\n if (data.players == null) return undefined;\n\n const you = findCurrentUser(data.players);\n const youId = you?.id;\n const prizes = toPrizeItems(\n data.prizes ?? [],\n data.currency,\n data.locale,\n );\n const youIndex =\n you != null ? data.players.findIndex((player) => player.id === you.id) : -1;\n\n const mapped = data.players.map((player, index) =>\n toTablePlayer(player, index, prizes, youId),\n );\n\n const players = mapped.slice(0, 10);\n const currentUser =\n youIndex >= 0\n ? toTablePlayer(data.players[youIndex]!, youIndex, prizes, youId)\n : undefined;\n\n return {\n players,\n ...(currentUser != null ? { currentUser } : {}),\n prizes,\n };\n }\n\n getMarqueeView(): MarqueeView | undefined {\n const data = this.requireData();\n if (data.marquee == null) return undefined;\n const items = data.marquee.items;\n\n const gameById = new Map((data.games ?? []).map((game) => [game.id, game]));\n const seenIds = new Set<string>();\n const resolved: MarqueeView['items'] = [];\n for (const item of items) {\n const id = typeof item.id === 'string' ? item.id.trim() : '';\n if (!id) {\n console.error(\n '[os-leaderboard-casino] marquee item is missing id; skipped.',\n );\n continue;\n }\n if (seenIds.has(id)) {\n console.error(\n `[os-leaderboard-casino] marquee item id ${JSON.stringify(id)} is duplicated; skipped.`,\n );\n continue;\n }\n if (!gameById.has(item.gameId)) {\n console.error(\n `[os-leaderboard-casino] marquee item gameId ${JSON.stringify(item.gameId)} is not in games[].`,\n );\n continue;\n }\n seenIds.add(id);\n const game = gameById.get(item.gameId)!;\n resolved.push({\n id,\n username: item.username,\n gameId: item.gameId,\n gameTitle: game.title,\n amount: item.amount,\n currency: data.currency,\n locale: data.locale,\n ...(item.big === true ? { big: true } : {}),\n ...(game.imageUrl != null ? { imageUrl: game.imageUrl } : {}),\n });\n }\n\n return {\n items: resolved,\n ...(data.marquee?.speedSec != null\n ? { speedSec: data.marquee.speedSec }\n : {}),\n };\n }\n\n getEventsBannerView(): EventsBannerView | undefined {\n const data = this.requireData();\n if (data.events == null) return undefined;\n const items = data.events.items;\n\n return {\n items: items.map((event) => ({\n eventId: event.eventId,\n title: event.title,\n ...(event.subtitle != null ? { subtitle: event.subtitle } : {}),\n ...(event.color != null ? { color: event.color } : {}),\n ...(event.imageUrl != null ? { imageUrl: event.imageUrl } : {}),\n })),\n ...(data.events?.rotateMs != null\n ? { rotateMs: data.events.rotateMs }\n : {}),\n };\n }\n\n getFooterView(): FooterView {\n return { text: 'Powered by oddsmith.io' };\n }\n\n getLegalsView(): LegalsView | undefined {\n const legals = this.requireData().legals;\n if (legals == null) return undefined;\n return { links: structuredClone(legals.links) };\n }\n\n private requireData(): LeaderboardData {\n if (this.data == null) {\n throw new Error(\n '[os-leaderboard-casino] Store is empty. Call bootstrap.load() first.',\n );\n }\n return this.data;\n }\n}\n\nfunction toTablePlayer(\n player: PlayerData,\n index: number,\n prizes: PrizeItem[],\n youId?: string,\n): TablePlayer {\n const rank = index + 1;\n const prize = prizes[index];\n\n return {\n id: player.id,\n username: player.username,\n rank,\n points: player.points,\n isYou: youId != null && player.id === youId,\n gamesPlayed: player.gamesPlayed,\n winRate: player.winRate,\n totalBet: player.totalBet,\n ...(player.avatarUrl != null ? { avatarUrl: player.avatarUrl } : {}),\n ...(player.previousRank != null\n ? { previousRank: player.previousRank }\n : {}),\n ...(prize != null ? { prizeLabel: prize.label } : {}),\n };\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s extends Event{constructor(s,t,e,o){super(\"context-request\",{bubbles:!0,composed:!0}),this.context=s,this.contextTarget=t,this.callback=e,this.subscribe=o??!1}}export{s as ContextRequestEvent};\n//# sourceMappingURL=context-request-event.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n){return n}export{n as createContext};\n//# sourceMappingURL=create-context.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(t,s,i,h){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=s,this.callback=i,this.subscribe=h??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.host,this.t,this.subscribe))}}export{s as ContextConsumer};\n//# sourceMappingURL=context-consumer.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{ContextConsumer as t}from\"../controllers/context-consumer.js\";\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function c({context:c,subscribe:e}){return(o,n)=>{\"object\"==typeof n?n.addInitializer((function(){new t(this,{context:c,callback:t=>{o.set.call(this,t)},subscribe:e})})):o.constructor.addInitializer((o=>{new t(o,{context:c,callback:t=>{o[n]=t},subscribe:e})}))}}export{c as consume};\n//# sourceMappingURL=consume.js.map\n","import { createContext } from '@lit/context';\nimport type { CasinoStore } from './casino.store.js';\n\n/** Provided by the `OsLeaderboardCasino` instance, consumed by any descendant. */\nexport const casinoStoreContext = createContext<CasinoStore>(\n Symbol.for('os-leaderboard-casino-store'),\n);\n","import { consume } from '@lit/context';\nimport { casinoStoreContext } from './casino.context.js';\n\n/** Subscribe to {@link casinoStoreContext} on any board descendant. */\nexport const consumeCasinoStore = () =>\n consume({ context: casinoStoreContext, subscribe: true });\n","/**\n * Campaign Intl helpers.\n * `locale` is a BCP 47 tag from `.data.locale` (e.g. `en-US`).\n * `currency` is ISO 4217 from `.data.currency`.\n */\n\nexport function formatMoney(\n value: number,\n currency: string,\n locale: string,\n): string {\n try {\n return new Intl.NumberFormat(locale, {\n style: 'currency',\n currency,\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n }).format(value);\n } catch {\n try {\n return `${new Intl.NumberFormat(locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n }).format(value)} ${currency}`.trim();\n } catch {\n return `${value} ${currency}`.trim();\n }\n }\n}\n\nexport function formatNumber(value: number, locale: string): string {\n try {\n return new Intl.NumberFormat(locale, { maximumFractionDigits: 0 }).format(\n value,\n );\n } catch {\n return String(value);\n }\n}\n\n/** Replace `{name}` tokens in a labels template. Unknown tokens stay put. */\nexport function fillLabel(\n template: string,\n vars: Record<string, string | number>,\n): string {\n return template.replace(/\\{(\\w+)\\}/g, (match, key: string) =>\n vars[key] != null ? String(vars[key]) : match,\n );\n}\n\nexport function formatDate(iso: string, locale: string): string {\n const date = new Date(iso);\n if (!Number.isFinite(date.getTime())) return iso;\n try {\n return new Intl.DateTimeFormat(locale, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }).format(date);\n } catch {\n return iso;\n }\n}\n","/**\n * Lit attribute converter so `demo=\"false\"` is false.\n * Bare `demo` / `demo=\"\"` / `demo=\"true\"` are true. Absence is false.\n */\nexport const booleanAttributeConverter = {\n fromAttribute(value: string | null): boolean {\n if (value == null) return false;\n const normalized = value.trim().toLowerCase();\n return normalized !== 'false' && normalized !== '0';\n },\n toAttribute(value: boolean): string | null {\n return value ? '' : null;\n },\n};\n","/** http(s) only. Blocks `javascript:`, `data:`, and other schemes. */\nexport function isSafeHttpUrl(href: string): boolean {\n try {\n const base =\n typeof window !== 'undefined' ? window.location.href : 'https://invalid.local';\n const url = new URL(href, base);\n return url.protocol === 'http:' || url.protocol === 'https:';\n } catch {\n return false;\n }\n}\n","import { isSafeHttpUrl } from './safe-href.js';\n\nconst ALLOWED_TAGS = new Set([\n 'P',\n 'BR',\n 'STRONG',\n 'EM',\n 'B',\n 'I',\n 'U',\n 'UL',\n 'OL',\n 'LI',\n 'A',\n 'H2',\n 'H3',\n 'SPAN',\n]);\n\nconst DROP_TAGS = new Set([\n 'SCRIPT',\n 'STYLE',\n 'NOSCRIPT',\n 'IFRAME',\n 'OBJECT',\n 'EMBED',\n 'LINK',\n 'META',\n 'BASE',\n 'FORM',\n 'INPUT',\n 'BUTTON',\n 'TEXTAREA',\n 'SELECT',\n 'OPTION',\n 'SVG',\n 'MATH',\n 'TEMPLATE',\n 'VIDEO',\n 'AUDIO',\n 'SOURCE',\n 'IMG',\n]);\n\nfunction cloneSafe(node: Node, doc: Document): Node | null {\n if (node.nodeType === Node.TEXT_NODE) {\n return doc.createTextNode(node.textContent ?? '');\n }\n if (node.nodeType !== Node.ELEMENT_NODE) return null;\n\n const el = node as Element;\n const tag = el.tagName.toUpperCase();\n\n if (DROP_TAGS.has(tag)) return null;\n\n if (!ALLOWED_TAGS.has(tag)) {\n return unwrap(el, doc);\n }\n\n if (tag === 'A') {\n const href = el.getAttribute('href') ?? '';\n if (!isSafeHttpUrl(href)) return unwrap(el, doc);\n const out = doc.createElement('a');\n out.setAttribute('href', href);\n out.setAttribute('rel', 'noopener noreferrer');\n out.setAttribute('target', '_blank');\n appendSafeChildren(el, out, doc);\n return out;\n }\n\n const out = doc.createElement(tag.toLowerCase());\n appendSafeChildren(el, out, doc);\n return out;\n}\n\nfunction unwrap(el: Element, doc: Document): Node | null {\n const frag = doc.createDocumentFragment();\n appendSafeChildren(el, frag, doc);\n return frag.childNodes.length > 0 ? frag : null;\n}\n\nfunction appendSafeChildren(\n from: Element,\n to: Node,\n doc: Document,\n): void {\n for (const child of from.childNodes) {\n const cloned = cloneSafe(child, doc);\n if (cloned) to.appendChild(cloned);\n }\n}\n\n/**\n * Allowlisted HTML for internal legal `body`.\n * Scripts, event handlers, and non-http(s) hrefs are dropped.\n * Unknown tags are unwrapped (text kept).\n */\nexport function sanitizeLegalHtml(html: string): string {\n const source = html.trim();\n if (!source) return '';\n if (typeof DOMParser === 'undefined') {\n return source.replace(/<[^>]*>/g, '');\n }\n\n const parsed = new DOMParser().parseFromString(source, 'text/html');\n const dest = parsed.createElement('div');\n for (const child of Array.from(parsed.body.childNodes)) {\n const cloned = cloneSafe(child, parsed);\n if (cloned) dest.appendChild(cloned);\n }\n return dest.innerHTML;\n}\n","import { html, nothing, type TemplateResult } from 'lit';\n\n/** Shared player name wrapper used across sections. */\nexport function renderPlayerName(\n username: string,\n options?: { suffix?: TemplateResult | typeof nothing },\n): TemplateResult {\n return html`\n <span class=\"player-name\">\n <span class=\"name\">${username}</span>\n ${options?.suffix ?? nothing}\n </span>\n `;\n}\n","/**\n * Ensures inline SVG markup has a viewBox so CSS width/height can scale it.\n * Icomoon exports often ship `width`/`height` only.\n */\nexport function addViewBox(\n svg: string,\n viewBox = '0 0 512 512',\n): string {\n if (/\\bviewBox\\s*=/.test(svg)) return svg;\n return svg.replace('<svg ', `<svg viewBox=\"${viewBox}\" `);\n}\n","import type {\n EventsData,\n HeroData,\n LeaderboardData,\n LeaderboardDataInput,\n LegalsData,\n MarqueeData,\n StatsData,\n} from '@os-leaderboard-casino/types';\nimport { buildDefaultData } from '../constants/default-data.js';\n\nfunction hasKey(obj: object | null | undefined, key: PropertyKey): boolean {\n return obj != null && Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction pickString(\n input: object | null | undefined,\n key: string,\n fallback: string,\n path: string,\n logPrefix: string,\n): string {\n if (!hasKey(input, key)) return fallback;\n const raw = (input as Record<string, unknown>)[key];\n if (typeof raw !== 'string' || raw.trim() === '') {\n console.error(\n `${logPrefix} ${path} is missing or empty; using default.`,\n );\n return fallback;\n }\n return raw;\n}\n\nfunction pickOptionalString(\n input: object | null | undefined,\n key: string,\n fallback: string | undefined,\n): string | undefined {\n if (!hasKey(input, key)) return fallback;\n const raw = (input as Record<string, unknown>)[key];\n if (raw == null) return undefined;\n return typeof raw === 'string' ? raw : fallback;\n}\n\nfunction pickOptionalNumber(\n input: object | null | undefined,\n key: string,\n fallback: number | undefined,\n path: string,\n logPrefix: string,\n): number | undefined {\n if (!hasKey(input, key)) return fallback;\n const raw = (input as Record<string, unknown>)[key];\n if (raw == null) return undefined;\n if (typeof raw !== 'number' || !Number.isFinite(raw)) {\n console.error(`${logPrefix} ${path} is invalid; using default.`);\n return fallback;\n }\n return raw;\n}\n\nfunction pickNumber(\n input: object | null | undefined,\n key: string,\n fallback: number,\n path: string,\n logPrefix: string,\n): number {\n if (!hasKey(input, key)) return fallback;\n const raw = (input as Record<string, unknown>)[key];\n if (typeof raw !== 'number' || !Number.isFinite(raw)) {\n console.error(`${logPrefix} ${path} is invalid; using default.`);\n return fallback;\n }\n return raw;\n}\n\nfunction pickBoolean(\n input: object | null | undefined,\n key: string,\n fallback: boolean | undefined,\n): boolean | undefined {\n if (!hasKey(input, key)) return fallback;\n const raw = (input as Record<string, unknown>)[key];\n if (raw == null) return undefined;\n return raw === true;\n}\n\n/** Omit → fallback. `null` → unmount. Array (including `[]`) → replace. */\nfunction pickArrayGroup<T>(\n input: object | null | undefined,\n key: string,\n fallback: T[],\n path: string,\n logPrefix: string,\n): T[] | undefined {\n if (!hasKey(input, key)) return fallback;\n const raw = (input as Record<string, unknown>)[key];\n if (raw === null) return undefined;\n if (!Array.isArray(raw)) {\n console.error(\n `${logPrefix} ${path} must be an array or null; using default.`,\n );\n return fallback;\n }\n return raw as T[];\n}\n\nfunction pickBagGroup<T extends object>(\n input: object | null | undefined,\n key: string,\n fallback: T,\n mix: (value: Partial<T>, fallback: T) => T,\n path: string,\n logPrefix: string,\n): T | undefined {\n if (!hasKey(input, key)) return fallback;\n const raw = (input as Record<string, unknown>)[key];\n if (raw === null) return undefined;\n if (raw == null || typeof raw !== 'object' || Array.isArray(raw)) {\n console.error(\n `${logPrefix} ${path} must be an object or null; using default.`,\n );\n return fallback;\n }\n return mix(raw as Partial<T>, fallback);\n}\n\nfunction mixHero(\n input: Partial<HeroData> | undefined,\n fallback: HeroData,\n logPrefix: string,\n): HeroData {\n if (input == null) return fallback;\n const description = pickOptionalString(\n input,\n 'description',\n fallback.description,\n );\n const startsAt = pickOptionalString(input, 'startsAt', fallback.startsAt);\n const endsAt = pickOptionalString(input, 'endsAt', fallback.endsAt);\n const cancelled = pickBoolean(input, 'cancelled', fallback.cancelled);\n return {\n title: pickString(input, 'title', fallback.title, 'data.hero.title', logPrefix),\n prizePool: pickNumber(\n input,\n 'prizePool',\n fallback.prizePool,\n 'data.hero.prizePool',\n logPrefix,\n ),\n ...(description != null ? { description } : {}),\n ...(startsAt != null ? { startsAt } : {}),\n ...(endsAt != null ? { endsAt } : {}),\n ...(cancelled != null ? { cancelled } : {}),\n };\n}\n\nfunction mixMarquee(\n input: Partial<MarqueeData>,\n fallback: MarqueeData,\n logPrefix: string,\n): MarqueeData {\n const speedSec = pickOptionalNumber(\n input,\n 'speedSec',\n fallback.speedSec,\n 'data.marquee.speedSec',\n logPrefix,\n );\n const items = pickArrayGroup(\n input,\n 'items',\n fallback.items,\n 'data.marquee.items',\n logPrefix,\n );\n return {\n items: items ?? [],\n ...(speedSec != null ? { speedSec } : {}),\n };\n}\n\nfunction mixEvents(\n input: Partial<EventsData>,\n fallback: EventsData,\n logPrefix: string,\n): EventsData {\n const rotateMs = pickOptionalNumber(\n input,\n 'rotateMs',\n fallback.rotateMs,\n 'data.events.rotateMs',\n logPrefix,\n );\n const items = pickArrayGroup(\n input,\n 'items',\n fallback.items,\n 'data.events.items',\n logPrefix,\n );\n return {\n items: items ?? [],\n ...(rotateMs != null ? { rotateMs } : {}),\n };\n}\n\nfunction mixLegals(\n input: Partial<LegalsData>,\n fallback: LegalsData,\n logPrefix: string,\n): LegalsData {\n const links = pickArrayGroup(\n input,\n 'links',\n fallback.links,\n 'data.legals.links',\n logPrefix,\n );\n return { links: links ?? [] };\n}\n\nfunction mixStats(\n input: Partial<StatsData>,\n fallback: StatsData,\n logPrefix: string,\n): StatsData {\n return {\n participants: pickNumber(\n input,\n 'participants',\n fallback.participants,\n 'data.stats.participants',\n logPrefix,\n ),\n prizes: pickNumber(\n input,\n 'prizes',\n fallback.prizes,\n 'data.stats.prizes',\n logPrefix,\n ),\n biggestWin: pickNumber(\n input,\n 'biggestWin',\n fallback.biggestWin,\n 'data.stats.biggestWin',\n logPrefix,\n ),\n };\n}\n\n/**\n * Mix a partial host `.data` onto a hardcoded campaign.\n * Mix rule: omit key → default. null → unmount. [] → empty copy. Keys mix. Arrays replace (no row merge).\n */\nexport function resolveLeaderboardData(\n input?: LeaderboardDataInput | null,\n logPrefix = '[os-leaderboard-casino]',\n fallback = buildDefaultData(),\n): LeaderboardData {\n if (input == null) return fallback;\n\n const games = pickArrayGroup(\n input,\n 'games',\n fallback.games ?? [],\n 'data.games',\n logPrefix,\n );\n const prizes = pickArrayGroup(\n input,\n 'prizes',\n fallback.prizes ?? [],\n 'data.prizes',\n logPrefix,\n );\n const players = pickArrayGroup(\n input,\n 'players',\n fallback.players ?? [],\n 'data.players',\n logPrefix,\n );\n\n const stats = pickBagGroup(\n input,\n 'stats',\n fallback.stats!,\n (value, base) => mixStats(value, base, logPrefix),\n 'data.stats',\n logPrefix,\n );\n const marquee = pickBagGroup(\n input,\n 'marquee',\n fallback.marquee!,\n (value, base) => mixMarquee(value, base, logPrefix),\n 'data.marquee',\n logPrefix,\n );\n const events = pickBagGroup(\n input,\n 'events',\n fallback.events!,\n (value, base) => mixEvents(value, base, logPrefix),\n 'data.events',\n logPrefix,\n );\n const legals = pickBagGroup(\n input,\n 'legals',\n fallback.legals!,\n (value, base) => mixLegals(value, base, logPrefix),\n 'data.legals',\n logPrefix,\n );\n\n return {\n hero: mixHero(input.hero, fallback.hero, logPrefix),\n currency: pickString(\n input,\n 'currency',\n fallback.currency,\n 'data.currency',\n logPrefix,\n ),\n locale: pickString(\n input,\n 'locale',\n fallback.locale,\n 'data.locale',\n logPrefix,\n ),\n ...(games != null ? { games } : {}),\n ...(prizes != null ? { prizes } : {}),\n ...(players != null ? { players } : {}),\n ...(stats != null ? { stats } : {}),\n ...(marquee != null ? { marquee } : {}),\n ...(events != null ? { events } : {}),\n ...(legals != null ? { legals } : {}),\n };\n}\n","import type { MarqueeItem } from './types/view.js';\n\nexport interface ParsedMarqueeWin {\n id: string;\n user: string;\n game: string;\n gameId: string;\n big: boolean;\n amount: number;\n currency: string;\n locale: string;\n imageUrl?: string;\n}\n\nexport function parseMarqueeItem(item: MarqueeItem): ParsedMarqueeWin {\n return {\n id: item.id,\n user: item.username,\n game: item.gameTitle,\n gameId: item.gameId,\n big: item.big === true,\n amount: item.amount,\n currency: item.currency,\n locale: item.locale,\n ...(item.imageUrl != null ? { imageUrl: item.imageUrl } : {}),\n };\n}\n","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<div\n class=\"marquee\"\n style=\"--speed: ${host.speedSec}s\"\n role=\"region\"\n aria-label=\"${host.ariaLabel}\"\n>\n <p class=\"empty-state\" ?hidden=${!host.isEmpty}>${host.emptyMessage}</p>\n <div class=\"track\" ?hidden=${host.isEmpty}>${host.renderTrack()}</div>\n</div>\n`;\n}\n","import { LitElement, html, nothing, type TemplateResult } from 'lit';\nimport { keyed } from 'lit/directives/keyed.js';\nimport { property } from 'lit/decorators.js';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { LabelsEngine } from '@oddsmith/labels-engine';\nimport { OS_LEADERBOARD_CASINO_MARQUEE } from '@os-leaderboard-casino/constants';\nimport {\n consumeCasinoStore,\n type CasinoStore,\n} from '@os-leaderboard-casino/store';\nimport type { MarqueeView } from './types/view.js';\nimport {\n applyImageFallback,\n formatMoney,\n GAME_IMAGE_FALLBACK,\n renderPlayerName,\n} from '@os-leaderboard-casino/utils';\nimport {\n parseMarqueeItem,\n type ParsedMarqueeWin,\n} from './marquee-item.js';\nimport type { MarqueeSectionHost } from './marquee-section.host.js';\nimport renderTemplate from './marquee-section.html?lit-html';\nimport styles from './marquee-section.scss?inline';\nimport sharedStyles from '@os-leaderboard-casino/styles/shared.scss?inline';\n\n/** Infinitely-scrolling winners ticker. */\n@Component({ selector: OS_LEADERBOARD_CASINO_MARQUEE })\nexport class OsLeaderboardCasinoMarquee\n extends LitElement\n implements MarqueeSectionHost\n{\n static styles = [scss(sharedStyles), scss(styles)];\n\n @consumeCasinoStore()\n @property({ attribute: false })\n store!: CasinoStore;\n\n get section(): MarqueeView | undefined {\n if (!this.store?.isReady()) return undefined;\n return this.store.getMarqueeView();\n }\n\n get speedSec(): number {\n return this.section?.speedSec ?? 30;\n }\n\n get ariaLabel(): string {\n return LabelsEngine.get(this, 'marquee.aria');\n }\n\n get isEmpty(): boolean {\n return (this.section?.items?.length ?? 0) === 0;\n }\n\n get emptyMessage() {\n return LabelsEngine.get(this, 'marquee.empty');\n }\n\n private parsedWins(): ParsedMarqueeWin[] {\n return (this.section?.items ?? []).map((item) => parseMarqueeItem(item));\n }\n\n private renderItemIcon(win: ParsedMarqueeWin) {\n if (!win.imageUrl) return nothing;\n return html`<img\n src=${win.imageUrl}\n alt=${win.game}\n data-game-id=${win.gameId}\n loading=\"lazy\"\n @error=${(event: Event) =>\n applyImageFallback(event, GAME_IMAGE_FALLBACK)}\n />`;\n }\n\n private renderWin(win: ParsedMarqueeWin) {\n const amount = formatMoney(win.amount, win.currency, win.locale);\n return html`\n <span class=\"win ${win.big ? 'big' : ''}\">\n <span class=\"chip\">${this.renderItemIcon(win)}</span>\n <span class=\"txt\">\n ${renderPlayerName(win.user)}\n <span class=\"verb\"\n >${LabelsEngine.get(this, 'marquee.won')}</span\n >\n ${html`<span class=\"amt\">${amount}</span>`}\n ${win.game\n ? html`\n <span class=\"tail\">\n <span class=\"on\"\n >${LabelsEngine.get(this, 'marquee.on')}</span\n >\n <span class=\"game\">${win.game}</span>\n </span>\n `\n : nothing}\n </span>\n </span>\n <span class=\"sep\" aria-hidden=\"true\">·</span>\n `;\n }\n\n renderTrack(): TemplateResult {\n const group = html`<div class=\"group\">\n ${this.parsedWins().map((win) => keyed(win.id, this.renderWin(win)))}\n </div>`;\n return html`${group}${group}`;\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n","/** Custom events from the events banner. */\nexport const EventsEvents = {\n click: 'event-click',\n} as const;\n\nexport type EventsEventName = (typeof EventsEvents)[keyof typeof EventsEvents];\n\nexport interface EventsClickDetail {\n eventId: string;\n}\n","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"${host.bannerClass}\" style=\"--event-color: ${host.eventColor}\" role=\"region\" aria-label=\"${host.ariaLabel}\" aria-live=\"polite\" @click=${host.onEventClick}>\n <p class=\"empty-state\" ?hidden=${!host.isEmpty}>${host.emptyMessage}</p>\n <div class=\"chip\" ?hidden=${host.isEmpty}>${host.renderIcon()}</div>\n ${host.renderBody()}\n <div class=\"right\" ?hidden=${host.isEmpty}>\n <span class=\"tag\">${host.tagLabel}</span>\n ${host.renderDots()}\n </div>\n</div>\n`;\n}\n","import { LitElement, html, nothing } from 'lit';\nimport { keyed } from 'lit/directives/keyed.js';\nimport { property, state } from 'lit/decorators.js';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { LabelsEngine } from '@oddsmith/labels-engine';\nimport {\n applyImageFallback,\n EVENT_IMAGE_FALLBACK,\n} from '@os-leaderboard-casino/utils';\nimport {\n DEFAULT_EVENTS_ROTATE_MS,\n OS_LEADERBOARD_CASINO_EVENTS,\n} from '@os-leaderboard-casino/constants';\nimport {\n consumeCasinoStore,\n type CasinoStore,\n} from '@os-leaderboard-casino/store';\nimport type { EventItem, EventsBannerView } from './types/view.js';\nimport { EventsEvents } from './types/events.js';\nimport type { EventsBannerHost } from './events-banner.host.js';\nimport renderTemplate from './events-banner.html?lit-html';\nimport styles from './events-banner.scss?inline';\n\n/** Promotional events — rotating cards. Icon comes from host `imageUrl`. */\n@Component({ selector: OS_LEADERBOARD_CASINO_EVENTS })\nexport class OsLeaderboardCasinoEvents\n extends LitElement\n implements EventsBannerHost\n{\n static styles = [scss(styles)];\n\n @consumeCasinoStore()\n @property({ attribute: false })\n store!: CasinoStore;\n\n get section(): EventsBannerView | undefined {\n if (!this.store?.isReady()) return undefined;\n return this.store.getEventsBannerView();\n }\n\n @state()\n private index = 0;\n\n private timer?: ReturnType<typeof setInterval>;\n\n get currentEvent(): EventItem | undefined {\n return this.section?.items?.[this.index];\n }\n\n get eventColor(): string {\n return this.currentEvent?.color ?? 'var(--primary)';\n }\n\n get isEmpty(): boolean {\n return (this.section?.items?.length ?? 0) === 0;\n }\n\n get emptyMessage() {\n return LabelsEngine.get(this, 'events.empty');\n }\n\n get ariaLabel(): string {\n return LabelsEngine.get(this, 'events.aria');\n }\n\n get tagLabel() {\n return LabelsEngine.get(this, 'events.tag');\n }\n\n get bannerClass(): string {\n return this.isEmpty ? 'banner' : 'banner is-clickable';\n }\n\n onEventClick(): void {\n if (this.isEmpty) return;\n const event = this.currentEvent;\n if (event == null) return;\n this.dispatchEvent(\n new CustomEvent(EventsEvents.click, {\n detail: { eventId: event.eventId },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.startRotation();\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.stopRotation();\n }\n\n updated(changed: Map<string, unknown>) {\n if (changed.has('store')) {\n this.index = 0;\n this.startRotation();\n }\n }\n\n private startRotation() {\n this.stopRotation();\n const count = this.section?.items?.length ?? 0;\n if (count < 2) return;\n this.timer = setInterval(() => {\n this.index = (this.index + 1) % count;\n }, this.section?.rotateMs ?? DEFAULT_EVENTS_ROTATE_MS);\n }\n\n private stopRotation() {\n if (this.timer) clearInterval(this.timer);\n this.timer = undefined;\n }\n\n private goTo(index: number) {\n this.index = index;\n this.startRotation();\n }\n\n renderIcon() {\n const url = this.currentEvent?.imageUrl;\n if (!url) return nothing;\n return html`<img\n src=${url}\n alt=\"\"\n @error=${(event: Event) =>\n applyImageFallback(event, EVENT_IMAGE_FALLBACK)}\n />`;\n }\n\n renderBody() {\n const event = this.currentEvent;\n if (event == null) return nothing;\n return html`${keyed(\n this.index,\n html`<div class=\"body\">\n <p class=\"title\">${event.title}</p>\n ${event.subtitle ? html`<p class=\"sub\">${event.subtitle}</p>` : nothing}\n </div>`,\n )}`;\n }\n\n renderDots() {\n const events = this.section?.items ?? [];\n if (events.length < 2) return nothing;\n return html`<div class=\"dots\">\n ${events.map(\n (event, i) => html`<button\n type=\"button\"\n class=\"dot\"\n aria-current=${i === this.index ? 'true' : 'false'}\n aria-label=\"${event.title}\"\n @click=${(e: Event) => {\n e.stopPropagation();\n this.goTo(i);\n }}\n ></button>`,\n )}\n </div>`;\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<section class=\"hero\">\n <div class=\"inner\">\n <span class=\"status ${host.status ?? ''}\" ?hidden=${!host.showStatus}>\n <i class=\"dot\" ?hidden=${!host.showActiveDot}></i>\n ${host.statusLabel}\n </span>\n <h2>${host.section.title}</h2>\n ${host.renderDescription()}\n <div class=\"pool\" ?hidden=${!host.showPool}>\n <span class=\"label\">${host.poolLabel}</span>\n <span class=\"value\">${host.poolValueLabel}</span>\n <span class=\"rising\" ?hidden=${!host.showRising}><i></i> ${host.risingLabel}</span>\n </div>\n ${host.renderCountdown()}\n </div>\n</section>\n`;\n}\n","import { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { LabelsEngine } from '@oddsmith/labels-engine';\nimport { OS_LEADERBOARD_CASINO_HERO } from '@os-leaderboard-casino/constants';\nimport {\n demoCountdownEndIso,\n formatDate,\n formatMoney,\n isCountdownExpired,\n} from '@os-leaderboard-casino/utils';\nimport {\n consumeCasinoStore,\n type CasinoStore,\n} from '@os-leaderboard-casino/store';\nimport type { LeaderboardStatus } from '@os-leaderboard-casino/types';\nimport type { HeroView } from './types/view.js';\nimport type { HeroSectionHost } from './hero-section.host.js';\nimport renderTemplate from './hero-section.html?lit-html';\nimport styles from './hero-section.scss?inline';\n\ninterface CountdownParts {\n expired: boolean;\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n}\n\nfunction countdownTo(endTs: string, now = Date.now()): CountdownParts {\n const remaining = Math.floor((new Date(endTs).getTime() - now) / 1000);\n if (!Number.isFinite(remaining) || remaining <= 0) {\n return { expired: true, days: 0, hours: 0, minutes: 0, seconds: 0 };\n }\n return {\n expired: false,\n days: Math.floor(remaining / 86400),\n hours: Math.floor((remaining % 86400) / 3600),\n minutes: Math.floor((remaining % 3600) / 60),\n seconds: remaining % 60,\n };\n}\n\n/** Glam hero — campaign headline, prize pool, countdown (MVP: no motion effects). */\n@Component({ selector: OS_LEADERBOARD_CASINO_HERO })\nexport class OsLeaderboardCasinoHero\n extends LitElement\n implements HeroSectionHost\n{\n static styles = [scss(styles)];\n\n @consumeCasinoStore()\n @property({ attribute: false })\n store!: CasinoStore;\n\n get section(): HeroView | undefined {\n if (!this.store?.isReady()) return undefined;\n return this.store.getHeroView();\n }\n\n @state()\n private now = Date.now();\n\n /** Rolled forward once per mount when demo endsAt is stale. */\n @state()\n private sessionEndTs: string | null = null;\n\n private timer?: ReturnType<typeof setInterval>;\n\n get showStatus(): boolean {\n return Boolean(this.section?.status);\n }\n\n get status(): LeaderboardStatus | undefined {\n return this.section?.status;\n }\n\n get statusLabel() {\n const status = this.section?.status;\n if (!status) return '';\n return LabelsEngine.get(this, `status.${status}`);\n }\n\n get showActiveDot(): boolean {\n return this.section?.status === 'active';\n }\n\n get showDescription(): boolean {\n return Boolean(this.section?.description);\n }\n\n get showPool(): boolean {\n return this.section?.prizePoolValue != null;\n }\n\n get poolValueLabel(): string {\n if (this.section?.prizePoolValue == null) return '';\n return formatMoney(\n this.section.prizePoolValue,\n this.section.currency,\n this.section.locale,\n );\n }\n\n get poolLabel() {\n return LabelsEngine.get(this, 'hero.pool');\n }\n\n get risingLabel() {\n return LabelsEngine.get(this, 'hero.rising');\n }\n\n get showRising(): boolean {\n return (\n this.section?.status === 'active' && this.section?.prizePoolValue != null\n );\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.syncSessionEndTs();\n this.timer = setInterval(() => {\n this.now = Date.now();\n this.syncSessionEndTs();\n }, 1000);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.timer) clearInterval(this.timer);\n }\n\n willUpdate(changed: Map<string, unknown>) {\n if (changed.has('store')) {\n this.sessionEndTs = null;\n this.syncSessionEndTs();\n }\n }\n\n private get isFinished(): boolean {\n const status = this.section?.status;\n if (status === 'upcoming') return false;\n if (status === 'completed' || status === 'cancelled') return true;\n const endTs = this.countdownEndTs;\n if (!endTs) return false;\n return countdownTo(endTs, this.now).expired;\n }\n\n private get countdownEndTs(): string | undefined {\n const status = this.section?.status;\n if (status === 'upcoming') return undefined;\n if (status === 'completed' || status === 'cancelled') {\n return this.section?.endsAt;\n }\n\n return this.sessionEndTs ?? this.section?.endsAt;\n }\n\n private syncSessionEndTs(): void {\n if (!this.store?.isReady() || !this.store.isDemo()) {\n this.sessionEndTs = null;\n return;\n }\n\n const endTs = this.section?.endsAt;\n const status = this.section?.status;\n\n if (!endTs || status === 'upcoming') {\n this.sessionEndTs = null;\n return;\n }\n\n if (status === 'completed' || status === 'cancelled') {\n this.sessionEndTs = endTs;\n return;\n }\n\n const activeEndTs = this.sessionEndTs ?? endTs;\n if (!isCountdownExpired(activeEndTs, this.now)) {\n if (!this.sessionEndTs) this.sessionEndTs = endTs;\n return;\n }\n\n this.sessionEndTs = demoCountdownEndIso(this.now);\n }\n\n renderDescription() {\n if (!this.showDescription) return nothing;\n return html`<p class=\"description\">${this.section?.description}</p>`;\n }\n\n renderCountdown() {\n if (this.section?.status === 'upcoming') {\n const startTs = this.section.startsAt;\n if (!startTs) return nothing;\n if (countdownTo(startTs, this.now).expired) return nothing;\n return this.renderCountdownClock('hero.startsIn', startTs);\n }\n\n const endTs = this.countdownEndTs;\n if (!endTs) return nothing;\n\n if (this.isFinished) {\n const ended = LabelsEngine.get(this, 'hero.finished');\n const locale = this.section?.locale;\n const dateLabel =\n locale != null ? formatDate(endTs, locale) : '';\n return html`<span class=\"ended\"\n >${ended}${dateLabel\n ? html`<time datetime=${endTs}>${dateLabel}</time>`\n : nothing}</span\n >`;\n }\n\n return this.renderCountdownClock('hero.endsIn', endTs);\n }\n\n private renderCountdownClock(labelKey: string, iso: string) {\n const locale = this.section?.locale;\n const c = countdownTo(iso, this.now);\n const cell = (v: number, label: string) =>\n html`<div class=\"cell\">\n <b>${String(v).padStart(2, '0')}</b><span>${label}</span>\n </div>`;\n\n return html`\n <div class=\"countdown\">\n <span class=\"label\">${LabelsEngine.get(this, labelKey)}</span>\n ${locale\n ? html`<time class=\"ends-at\" datetime=${iso}\n >${formatDate(iso, locale)}</time\n >`\n : nothing}\n <div class=\"countdown-track\">\n ${cell(\n c.days,\n LabelsEngine.get(this, 'hero.days'),\n )}<span class=\"sep\">:</span>\n ${cell(\n c.hours,\n LabelsEngine.get(this, 'hero.hours'),\n )}<span class=\"sep\">:</span>\n ${cell(\n c.minutes,\n LabelsEngine.get(this, 'hero.min'),\n )}<span class=\"sep\">:</span>\n ${cell(\n c.seconds,\n LabelsEngine.get(this, 'hero.sec'),\n )}\n </div>\n </div>\n `;\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{directive as r,Directive as s,PartType as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends s{constructor(i){if(super(i),this.it=t,i.type!==n.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=r(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import{directive as s}from\"../directive.js\";import{UnsafeHTMLDirective as e}from\"./unsafe-html.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class t extends e{}t.directiveName=\"unsafeSVG\",t.resultType=2;const o=s(t);export{o as unsafeSVG};\n//# sourceMappingURL=unsafe-svg.js.map\n","import type { PrizeData } from './data.js';\n\n/** Custom events from the prize section. */\nexport const PrizeEvents = {\n click: 'prize-click',\n} as const;\n\nexport type PrizeEventName = (typeof PrizeEvents)[keyof typeof PrizeEvents];\n\n/** Host-facing prize-click payload. `place` is 1-based after sort by value. */\nexport interface PrizeClickDetail {\n prize: PrizeData & { place: number };\n}\n","export default \"<svg viewBox=\\\"0 0 48 48\\\" width=\\\"100%\\\" height=\\\"100%\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\">\\n <rect x=\\\"11\\\" y=\\\"16\\\" width=\\\"26\\\" height=\\\"22\\\" rx=\\\"4\\\" fill=\\\"#1c1430\\\" stroke=\\\"#f5c542\\\" stroke-width=\\\"2\\\"/>\\n <path d=\\\"M11 22h26\\\" stroke=\\\"#7c3aed\\\" stroke-width=\\\"1.5\\\"/>\\n <path d=\\\"M24 16v6\\\" stroke=\\\"#f5c542\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\"/>\\n <path d=\\\"M18 16c0-3 2.5-5 6-5s6 2 6 5\\\" stroke=\\\"#f5c542\\\" stroke-width=\\\"2\\\" fill=\\\"none\\\"/>\\n <circle cx=\\\"24\\\" cy=\\\"29\\\" r=\\\"3\\\" fill=\\\"#f5c542\\\"/>\\n</svg>\\n\"","export default \"<svg viewBox=\\\"0 0 72 72\\\" width=\\\"100%\\\" height=\\\"100%\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\">\\n <circle cx=\\\"36\\\" cy=\\\"36\\\" r=\\\"34\\\" fill=\\\"var(--coin-edge)\\\"/>\\n <circle cx=\\\"36\\\" cy=\\\"34\\\" r=\\\"32\\\" fill=\\\"var(--coin-face)\\\"/>\\n <circle cx=\\\"36\\\" cy=\\\"34\\\" r=\\\"25\\\" fill=\\\"none\\\" stroke=\\\"var(--coin-ring)\\\" stroke-width=\\\"2\\\" opacity=\\\"0.55\\\"/>\\n</svg>\\n\"","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<section>\n <div class=\"section-header\">\n <h2 class=\"section-title\">${host.sectionTitle}</h2>\n </div>\n\n <p class=\"empty-state\" ?hidden=${host.hasPrizes}>${host.emptyMessage}</p>\n <div class=\"podium\" ?hidden=${!host.hasPrizes}>${host.renderPodium()}</div>\n <div class=\"list\" ?hidden=${!host.hasTierList}>${host.renderTierList()}</div>\n</section>\n`;\n}\n","import { LitElement, html, nothing } from 'lit';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { property } from 'lit/decorators.js';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { LabelsEngine } from '@oddsmith/labels-engine';\nimport { OS_LEADERBOARD_CASINO_PRIZE } from '@os-leaderboard-casino/constants';\nimport {\n consumeCasinoStore,\n type CasinoStore,\n} from '@os-leaderboard-casino/store';\nimport { PrizeEvents } from './types/events.js';\nimport type { PrizeItem, PrizeView } from './types/view.js';\nimport prizeDefaultIcon from '@os-leaderboard-casino/assets/icons/prize.default.svg?raw';\nimport prizeMedalIcon from '@os-leaderboard-casino/assets/icons/prize.medal.svg?raw';\nimport type { PrizeSectionHost } from './prize-section.host.js';\nimport renderTemplate from './prize-section.html?lit-html';\nimport styles from './prize-section.scss?inline';\nimport sharedStyles from '@os-leaderboard-casino/styles/shared.scss?inline';\nimport { addViewBox, fillLabel, formatMoney } from '@os-leaderboard-casino/utils';\n\nconst prizeDefaultIconVb = addViewBox(prizeDefaultIcon);\nconst prizeMedalSvg = addViewBox(prizeMedalIcon);\n\nfunction rankLabel(prize: PrizeItem): string {\n return `#${prize.place}`;\n}\n\n/** Top-3 metallic podium showcase + remaining prize tiers. */\n@Component({ selector: OS_LEADERBOARD_CASINO_PRIZE })\nexport class OsLeaderboardCasinoPrize\n extends LitElement\n implements PrizeSectionHost\n{\n static styles = [scss(sharedStyles), scss(styles)];\n\n @consumeCasinoStore()\n @property({ attribute: false })\n store!: CasinoStore;\n\n get section(): PrizeView | undefined {\n if (!this.store?.isReady()) return undefined;\n return this.store.getPrizeView();\n }\n\n private restPrizes: PrizeItem[] = [];\n private secondPrize?: PrizeItem;\n private firstPrize?: PrizeItem;\n private thirdPrize?: PrizeItem;\n\n get sectionTitle() {\n return LabelsEngine.get(this, 'prize.title');\n }\n\n get emptyMessage() {\n return LabelsEngine.get(this, 'prize.empty');\n }\n\n get hasPrizes(): boolean {\n return (this.section?.prizes?.length ?? 0) > 0;\n }\n\n get hasTierList(): boolean {\n return this.restPrizes.length > 0;\n }\n\n willUpdate() {\n const prizes = this.section?.prizes ?? [];\n this.firstPrize = prizes[0];\n this.secondPrize = prizes[1];\n this.thirdPrize = prizes[2];\n this.restPrizes = prizes.slice(3);\n }\n\n private onPrizeClick(prize: PrizeItem) {\n this.dispatchEvent(\n new CustomEvent(PrizeEvents.click, {\n detail: { prize },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private formatValue(prize: PrizeItem): string {\n return formatMoney(prize.value, prize.currency, prize.locale);\n }\n\n private renderMedal(rank: 1 | 2 | 3, variant: 'gold' | 'silver' | 'bronze') {\n const medalLabel = fillLabel(LabelsEngine.get(this, 'prize.medal'), { rank });\n return html`\n <span class=\"coin ${variant}\" role=\"img\" aria-label=\"${medalLabel}\">\n ${unsafeSVG(prizeMedalSvg)}\n <span class=\"rank-text\">${rank}</span>\n </span>\n `;\n }\n\n private renderPodiumSlot(\n prize: PrizeItem,\n place: 'first' | 'second' | 'third',\n ) {\n const variants = {\n first: 'gold',\n second: 'silver',\n third: 'bronze',\n } as const;\n const ranks = { first: 1, second: 2, third: 3 } as const;\n const labels = {\n first: LabelsEngine.get(this, 'prize.champion'),\n second: LabelsEngine.get(this, 'prize.second'),\n third: LabelsEngine.get(this, 'prize.third'),\n };\n return html`\n <button class=\"slot ${place}\" @click=${() => this.onPrizeClick(prize)}>\n <div class=\"coin-wrap\">\n ${this.renderMedal(ranks[place], variants[place])}\n </div>\n <div class=\"place\">${labels[place]}</div>\n <div class=\"name\">${prize.label}</div>\n <div class=\"value\">${this.formatValue(prize)}</div>\n </button>\n `;\n }\n\n renderPodium() {\n return html`\n ${this.secondPrize\n ? this.renderPodiumSlot(this.secondPrize, 'second')\n : nothing}\n ${this.firstPrize\n ? this.renderPodiumSlot(this.firstPrize, 'first')\n : nothing}\n ${this.thirdPrize\n ? this.renderPodiumSlot(this.thirdPrize, 'third')\n : nothing}\n `;\n }\n\n renderTierList() {\n return html`${this.restPrizes.map(\n (prize) => html`\n <button class=\"tier\" @click=${() => this.onPrizeClick(prize)}>\n <span class=\"icon\">${unsafeSVG(prizeDefaultIconVb)}</span>\n <span class=\"info\">\n <span class=\"name\">${prize.label}</span>\n <span class=\"range\"\n >${LabelsEngine.get(this, 'prize.rank')}\n ${rankLabel(prize)}</span\n >\n </span>\n <span class=\"value\">${this.formatValue(prize)}</span>\n </button>\n `,\n )}`;\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n","export default \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.8\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" aria-hidden=\\\"true\\\">\\n <rect x=\\\"3\\\" y=\\\"9\\\" width=\\\"18\\\" height=\\\"12\\\" rx=\\\"1.5\\\"/>\\n <path d=\\\"M3 13h18M12 9v12\\\"/>\\n <path d=\\\"M12 9S10 3 7.5 4.5 9 9 12 9zM12 9s2-6 4.5-4.5S15 9 12 9z\\\"/>\\n</svg>\\n\"","export default \"<svg viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.8\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" aria-hidden=\\\"true\\\">\\n <circle cx=\\\"9\\\" cy=\\\"8\\\" r=\\\"3\\\"/>\\n <path d=\\\"M3 20a6 6 0 0 1 12 0\\\"/>\\n <path d=\\\"M16 6a3 3 0 0 1 0 6M21 20a6 6 0 0 0-4-5.6\\\"/>\\n</svg>\\n\"","export default \"<svg viewBox=\\\"0 0 24 24\\\" width=\\\"100%\\\" height=\\\"100%\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\">\\n <path d=\\\"M7 4h10v3a5 5 0 0 1-10 0z\\\" fill=\\\"currentColor\\\" opacity=\\\"0.18\\\"/>\\n <path d=\\\"M7 4h10v3a5 5 0 0 1-10 0z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.6\\\" stroke-linejoin=\\\"round\\\"/>\\n <path d=\\\"M7 5H4.5v1.5A2.5 2.5 0 0 0 7 9M17 5h2.5v1.5A2.5 2.5 0 0 1 17 9M12 12v4M9 20h6M10 16h4l.5 4h-5z\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\\n\"","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<section class=\"strip\">\n <div class=\"rail participants\">\n <div class=\"icon-well\">${host.renderIcon('users')}</div>\n <div class=\"copy\">\n <div class=\"label\">${host.participantsCaption}</div>\n <div class=\"value\">${host.participantsLabel}</div>\n </div>\n </div>\n <div class=\"rail prizes\" ?hidden=${!host.showPrizes}>\n <div class=\"icon-well\">${host.renderIcon('gift')}</div>\n <div class=\"copy\">\n <div class=\"label\">${host.prizeTiersCaption}</div>\n <div class=\"value\">${host.prizesLabel}</div>\n </div>\n </div>\n <div class=\"rail biggestWin compact\" ?hidden=${!host.showBiggestWin}>\n <div class=\"icon-well\">${host.renderIcon('trophy')}</div>\n <div class=\"copy\">\n <div class=\"label\">${host.biggestWinCaption}</div>\n <div class=\"value\">${host.biggestWinLabel}</div>\n </div>\n </div>\n</section>\n`;\n}\n","import { LitElement, html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { LabelsEngine } from '@oddsmith/labels-engine';\nimport { OS_LEADERBOARD_CASINO_STATS } from '@os-leaderboard-casino/constants';\nimport { addViewBox, formatMoney, formatNumber } from '@os-leaderboard-casino/utils';\nimport {\n consumeCasinoStore,\n type CasinoStore,\n} from '@os-leaderboard-casino/store';\nimport type { StatsView } from './types/view.js';\nimport statGiftIcon from '@os-leaderboard-casino/assets/icons/stat.gift.svg?raw';\nimport statUsersIcon from '@os-leaderboard-casino/assets/icons/stat.users.svg?raw';\nimport winTrophyIcon from '@os-leaderboard-casino/assets/icons/win.trophy.svg?raw';\nimport type { StatsSectionHost, StatIconName } from './stats-section.host.js';\nimport renderTemplate from './stats-section.html?lit-html';\nimport styles from './stats-section.scss?inline';\n\nconst STAT_ICON_SVG: Record<StatIconName, string> = {\n users: addViewBox(statUsersIcon),\n gift: addViewBox(statGiftIcon),\n trophy: addViewBox(winTrophyIcon),\n};\n\n@Component({ selector: OS_LEADERBOARD_CASINO_STATS })\nexport class OsLeaderboardCasinoStats\n extends LitElement\n implements StatsSectionHost\n{\n static styles = [scss(styles)];\n\n @consumeCasinoStore()\n @property({ attribute: false })\n store!: CasinoStore;\n\n get section(): StatsView | undefined {\n if (!this.store?.isReady()) return undefined;\n return this.store.getStatsView();\n }\n\n get participantsCaption() {\n return LabelsEngine.get(this, 'stats.participants');\n }\n\n get participantsLabel(): string {\n if (this.section == null) return '';\n return formatNumber(this.section.participants, this.section.locale);\n }\n\n get showPrizes(): boolean {\n return this.section?.prizes != null;\n }\n\n get prizeTiersCaption() {\n return LabelsEngine.get(this, 'stats.prizeTiers');\n }\n\n get prizesLabel(): string {\n if (this.section == null) return '';\n return formatNumber(this.section.prizes, this.section.locale);\n }\n\n get showBiggestWin(): boolean {\n return this.section?.biggestWin != null;\n }\n\n get biggestWinCaption() {\n return LabelsEngine.get(this, 'stats.biggestWin');\n }\n\n get biggestWinLabel(): string {\n if (this.section?.biggestWin == null) return '';\n return formatMoney(\n this.section.biggestWin,\n this.section.biggestWinCurrency,\n this.section.locale,\n );\n }\n\n renderIcon(icon: StatIconName) {\n return html`${unsafeSVG(STAT_ICON_SVG[icon])}`;\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n","var n=function(){return n=Object.assign||function(n){for(var t,i=1,e=arguments.length;i<e;i++)for(var r in t=arguments[i])Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n},n.apply(this,arguments)};function t(n,t,i){if(i||2===arguments.length)for(var e,r=0,a=t.length;r<a;r++)!e&&r in t||(e||(e=Array.prototype.slice.call(t,0,r)),e[r]=t[r]);return n.concat(e||Array.prototype.slice.call(t))}function i(n){return Array.prototype.slice.call(n)}function e(n,t){var i=Math.floor(n);return i===t||i+1===t?n:t}function r(){return Date.now()}function a(n,t,i){if(t=\"data-keen-slider-\"+t,null===i)return n.removeAttribute(t);n.setAttribute(t,i||\"\")}function o(n,t){return t=t||document,\"function\"==typeof n&&(n=n(t)),Array.isArray(n)?n:\"string\"==typeof n?i(t.querySelectorAll(n)):n instanceof HTMLElement?[n]:n instanceof NodeList?i(n):[]}function u(n){n.raw&&(n=n.raw),n.cancelable&&!n.defaultPrevented&&n.preventDefault()}function s(n){n.raw&&(n=n.raw),n.stopPropagation&&n.stopPropagation()}function c(){var n=[];return{add:function(t,i,e,r){t.addListener?t.addListener(e):t.addEventListener(i,e,r),n.push([t,i,e,r])},input:function(n,t,i,e){this.add(n,t,function(n){return function(t){t.nativeEvent&&(t=t.nativeEvent);var i=t.changedTouches||[],e=t.targetTouches||[],r=t.detail&&t.detail.x?t.detail:null;return n({id:r?r.identifier?r.identifier:\"i\":e[0]?e[0]?e[0].identifier:\"e\":\"d\",idChanged:r?r.identifier?r.identifier:\"i\":i[0]?i[0]?i[0].identifier:\"e\":\"d\",raw:t,x:r&&r.x?r.x:e[0]?e[0].screenX:r?r.x:t.pageX,y:r&&r.y?r.y:e[0]?e[0].screenY:r?r.y:t.pageY})}}(i),e)},purge:function(){n.forEach((function(n){n[0].removeListener?n[0].removeListener(n[2]):n[0].removeEventListener(n[1],n[2],n[3])})),n=[]}}}function d(n,t,i){return Math.min(Math.max(n,t),i)}function l(n){return(n>0?1:0)-(n<0?1:0)||+n}function f(n){var t=n.getBoundingClientRect();return{height:e(t.height,n.offsetHeight),width:e(t.width,n.offsetWidth)}}function p(n,t,i,e){var r=n&&n[t];return null==r?i:e&&\"function\"==typeof r?r():r}function v(n){return Math.round(1e6*n)/1e6}function h(n){var t,i,e,r,a,o;function u(t){o||(o=t),s(!0);var a=t-o;a>e&&(a=e);var l=r[i];if(l[3]<a)return i++,u(t);var f=l[2],p=l[4],v=l[0],h=l[1]*(0,l[5])(0===p?1:(a-f)/p);if(h&&n.track.to(v+h),a<e)return d();o=null,s(!1),c(null),n.emit(\"animationEnded\")}function s(n){t.active=n}function c(n){t.targetIdx=n}function d(){var n;n=u,a=window.requestAnimationFrame(n)}function l(){var t;t=a,window.cancelAnimationFrame(t),s(!1),c(null),o&&n.emit(\"animationStopped\"),o=null}return t={active:!1,start:function(t){if(l(),n.track.details){var a=0,o=n.track.details.position;i=0,e=0,r=t.map((function(n){var t,i=Number(o),r=null!==(t=n.earlyExit)&&void 0!==t?t:n.duration,u=n.easing,s=n.distance*u(r/n.duration)||0;o+=s;var c=e;return e+=r,a+=s,[i,n.distance,c,e,n.duration,u]})),c(n.track.distToIdx(a)),d(),n.emit(\"animationStarted\")}},stop:l,targetIdx:null}}function m(n){var i,e,a,o,u,s,c,f,h,m,g,b,x,k,y=1/0,w=[],M=null,T=0;function C(n){_(T+n)}function E(n){var t=z(T+n).abs;return D(t)?t:null}function z(n){var i=Math.floor(Math.abs(v(n/e))),r=v((n%e+e)%e);r===e&&(r=0);var a=l(n),o=c.indexOf(t([],c,!0).reduce((function(n,t){return Math.abs(t-r)<Math.abs(n-r)?t:n}))),u=o;return a<0&&i++,o===s&&(u=0,i+=a>0?1:-1),{abs:u+i*s*a,origin:o,rel:u}}function I(n,t,i){var e;if(t||!S())return A(n,i);if(!D(n))return null;var r=z(null!=i?i:T),a=r.abs,o=n-r.rel,u=a+o;e=A(u);var c=A(u-s*l(o));return(null!==c&&Math.abs(c)<Math.abs(e)||null===e)&&(e=c),v(e)}function A(n,t){if(null==t&&(t=v(T)),!D(n)||null===n)return null;n=Math.round(n);var i=z(t),r=i.abs,a=i.rel,o=i.origin,u=O(n),d=(t%e+e)%e,l=c[o],f=Math.floor((n-(r-a))/s)*e;return v(l-d-l+c[u]+f+(o===s?e:0))}function D(n){return L(n)===n}function L(n){return d(n,h,m)}function S(){return o.loop}function O(n){return(n%s+s)%s}function _(t){var i;i=t-T,w.push({distance:i,timestamp:r()}),w.length>6&&(w=w.slice(-6)),T=v(t);var e=H().abs;if(e!==M){var a=null!==M;M=e,a&&n.emit(\"slideChanged\")}}function H(t){var r=t?null:function(){if(s){var n=S(),t=n?(T%e+e)%e:T,i=(n?T%e:T)-u[0][2],r=0-(i<0&&n?e-Math.abs(i):i),c=0,d=z(T),f=d.abs,p=d.rel,v=u[p][2],y=u.map((function(t,i){var a=r+c;(a<0-t[0]||a>1)&&(a+=(Math.abs(a)>e-1&&n?e:0)*l(-a));var u=i-p,d=l(u),h=u+f;n&&(-1===d&&a>v&&(h+=s),1===d&&a<v&&(h-=s),null!==g&&h<g&&(a+=e),null!==b&&h>b&&(a-=e));var m=a+t[0]+t[1],x=Math.max(a>=0&&m<=1?1:m<0||a>1?0:a<0?Math.min(1,(t[0]+a)/t[0]):(1-a)/t[0],0);return c+=t[0]+t[1],{abs:h,distance:o.rtl?-1*a+1-t[0]:a,portion:x,size:t[0]}}));return f=L(f),p=O(f),{abs:L(f),length:a,max:k,maxIdx:m,min:x,minIdx:h,position:T,progress:n?t/e:T/a,rel:p,slides:y,slidesLength:e}}}();return i.details=r,n.emit(\"detailsChanged\"),r}return i={absToRel:O,add:C,details:null,distToIdx:E,idxToDist:I,init:function(t){if(function(){if(o=n.options,u=(o.trackConfig||[]).map((function(n){return[p(n,\"size\",1),p(n,\"spacing\",0),p(n,\"origin\",0)]})),s=u.length){e=v(u.reduce((function(n,t){return n+t[0]+t[1]}),0));var t,i=s-1;a=v(e+u[0][2]-u[i][0]-u[i][2]-u[i][1]),c=u.reduce((function(n,i){if(!n)return[0];var e=u[n.length-1],r=n[n.length-1]+(e[0]+e[2])+e[1];return r-=i[2],n[n.length-1]>r&&(r=n[n.length-1]),r=v(r),n.push(r),(!t||t<r)&&(f=n.length-1),t=r,n}),null),0===a&&(f=0),c.push(v(e))}}(),!s)return H(!0);var i;!function(){var t=n.options.range,i=n.options.loop;g=h=i?p(i,\"min\",-1/0):0,b=m=i?p(i,\"max\",y):f;var e=p(t,\"min\",null),r=p(t,\"max\",null);null!==e&&(h=e),null!==r&&(m=r),x=h===-1/0?h:n.track.idxToDist(h||0,!0,0),k=m===y?m:I(m,!0,0),null===r&&(b=m),p(t,\"align\",!1)&&m!==y&&0===u[O(m)][2]&&(k-=1-u[O(m)][0],m=E(k-T)),x=v(x),k=v(k)}(),i=t,Number(i)===i?C(A(L(t))):H()},to:_,velocity:function(){var n=r(),t=w.reduce((function(t,i){var e=i.distance,r=i.timestamp;return n-r>200||(l(e)!==l(t.distance)&&t.distance&&(t={distance:0,lastTimestamp:0,time:0}),t.time&&(t.distance+=e),t.lastTimestamp&&(t.time+=r-t.lastTimestamp),t.lastTimestamp=r),t}),{distance:0,lastTimestamp:0,time:0});return t.distance/t.time||0}}}function g(n){var t,i,e,r,a,o,u,s;function c(n){return 2*n}function f(n){return d(n,u,s)}function p(n){return 1-Math.pow(1-n,3)}function v(){return e?n.track.velocity():0}function h(){b();var t=\"free-snap\"===n.options.mode,i=n.track,e=v();r=l(e);var u=n.track.details,s=[];if(e||!t){var d=m(e),h=d.dist,g=d.dur;if(g=c(g),h*=r,t){var x=i.idxToDist(i.distToIdx(h),!0);x&&(h=x)}s.push({distance:h,duration:g,easing:p});var k=u.position,y=k+h;if(y<a||y>o){var w=y<a?a-k:o-k,M=0,T=e;if(l(w)===r){var C=Math.min(Math.abs(w)/Math.abs(h),1),E=function(n){return 1-Math.pow(1-n,1/3)}(C)*g;s[0].earlyExit=E,T=e*(1-C)}else s[0].earlyExit=0,M+=w;var z=m(T,100),I=z.dist*r;n.options.rubberband&&(s.push({distance:I,duration:c(z.dur),easing:p}),s.push({distance:-I+M,duration:500,easing:p}))}n.animator.start(s)}else n.moveToIdx(f(u.abs),!0,{duration:500,easing:function(n){return 1+--n*n*n*n*n}})}function m(n,t){void 0===t&&(t=1e3);var i=147e-9+(n=Math.abs(n))/t;return{dist:Math.pow(n,2)/i,dur:n/i}}function g(){var t=n.track.details;t&&(a=t.min,o=t.max,u=t.minIdx,s=t.maxIdx)}function b(){n.animator.stop()}n.on(\"updated\",g),n.on(\"optionsChanged\",g),n.on(\"created\",g),n.on(\"dragStarted\",(function(){e=!1,b(),t=i=n.track.details.abs})),n.on(\"dragChecked\",(function(){e=!0})),n.on(\"dragEnded\",(function(){var e=n.options.mode;\"snap\"===e&&function(){var e=n.track,r=n.track.details,u=r.position,s=l(v());(u>o||u<a)&&(s=0);var c=t+s;0===r.slides[e.absToRel(c)].portion&&(c-=s),t!==i&&(c=i),l(e.idxToDist(c,!0))!==s&&(c+=s),c=f(c);var d=e.idxToDist(c,!0);n.animator.start([{distance:d,duration:500,easing:function(n){return 1+--n*n*n*n*n}}])}(),\"free\"!==e&&\"free-snap\"!==e||h()})),n.on(\"dragged\",(function(){i=n.track.details.abs}))}function b(n){var t,i,e,r,a,f,p,v,h,m,g,b,x,k,y,w,M,T,C=c();function E(t){if(f&&v===t.id){var o=D(t);if(h){if(!A(t))return I(t);m=o,h=!1,n.emit(\"dragChecked\")}if(w)return m=o;u(t);var c=function(t){if(M===-1/0&&T===1/0)return t;var e=n.track.details,o=e.length,u=e.position,s=d(t,M-u,T-u);if(0===o)return 0;if(!n.options.rubberband)return s;if(u<=T&&u>=M)return t;if(u<M&&i>0||u>T&&i<0)return t;var c=(u<M?u-M:u-T)/o,l=r*o,f=Math.abs(c*l),p=Math.max(0,1-f/a*2);return p*p*t}(p(m-o)/r*e);i=l(c);var x=n.track.details.position;(x>M&&x<T||x===M&&i>0||x===T&&i<0)&&s(t),g+=c,!b&&Math.abs(g*r)>5&&(b=!0),n.track.add(c),m=o,n.emit(\"dragged\")}}function z(t){!f&&n.track.details&&n.track.details.length&&(g=0,f=!0,b=!1,h=!0,v=t.id,A(t),m=D(t),n.emit(\"dragStarted\"))}function I(t){f&&v===t.idChanged&&(f=!1,n.emit(\"dragEnded\"))}function A(n){var t=L(),i=t?n.y:n.x,e=t?n.x:n.y,r=void 0!==x&&void 0!==k&&Math.abs(k-e)<=Math.abs(x-i);return x=i,k=e,r}function D(n){return L()?n.y:n.x}function L(){return n.options.vertical}function S(){r=n.size,a=L()?window.innerHeight:window.innerWidth;var t=n.track.details;t&&(M=t.min,T=t.max)}function O(n){b&&(s(n),u(n))}function _(){if(C.purge(),n.options.drag&&!n.options.disabled){var i;i=n.options.dragSpeed||1,p=\"function\"==typeof i?i:function(n){return n*i},e=n.options.rtl?-1:1,S(),t=n.container,function(){var n=\"data-keen-slider-clickable\";o(\"[\".concat(n,\"]:not([\").concat(n,\"=false])\"),t).map((function(n){C.add(n,\"dragstart\",s),C.add(n,\"mousedown\",s),C.add(n,\"touchstart\",s)}))}(),C.add(t,\"dragstart\",(function(n){u(n)})),C.add(t,\"click\",O,{capture:!0}),C.input(t,\"ksDragStart\",z),C.input(t,\"ksDrag\",E),C.input(t,\"ksDragEnd\",I),C.input(t,\"mousedown\",z),C.input(t,\"mousemove\",E),C.input(t,\"mouseleave\",I),C.input(t,\"mouseup\",I),C.input(t,\"touchstart\",z,{passive:!0}),C.input(t,\"touchmove\",E,{passive:!1}),C.input(t,\"touchend\",I),C.input(t,\"touchcancel\",I),C.add(window,\"wheel\",(function(n){f&&u(n)}));var r=\"data-keen-slider-scrollable\";o(\"[\".concat(r,\"]:not([\").concat(r,\"=false])\"),n.container).map((function(n){return function(n){var t;C.input(n,\"touchstart\",(function(n){t=D(n),w=!0,y=!0}),{passive:!0}),C.input(n,\"touchmove\",(function(i){var e=L(),r=e?n.scrollHeight-n.clientHeight:n.scrollWidth-n.clientWidth,a=t-D(i),o=e?n.scrollTop:n.scrollLeft,s=e&&\"scroll\"===n.style.overflowY||!e&&\"scroll\"===n.style.overflowX;if(t=D(i),(a<0&&o>0||a>0&&o<r)&&y&&s)return w=!0;y=!1,u(i),w=!1})),C.input(n,\"touchend\",(function(){w=!1}))}(n)}))}}n.on(\"updated\",S),n.on(\"optionsChanged\",_),n.on(\"created\",_),n.on(\"destroyed\",C.purge)}function x(n){var t,i,e=null;function r(t,i,e){n.animator.active?o(t,i,e):requestAnimationFrame((function(){return o(t,i,e)}))}function a(){r(!1,!1,i)}function o(i,r,a){var o=0,u=n.size,d=n.track.details;if(d&&t){var l=d.slides;t.forEach((function(n,t){if(i)!e&&r&&s(n,null,a),c(n,null,a);else{if(!l[t])return;var d=l[t].size*u;!e&&r&&s(n,d,a),c(n,l[t].distance*u-o,a),o+=d}}))}}function u(t){return\"performance\"===n.options.renderMode?Math.round(t):t}function s(n,t,i){var e=i?\"height\":\"width\";null!==t&&(t=u(t)+\"px\"),n.style[\"min-\"+e]=t,n.style[\"max-\"+e]=t}function c(n,t,i){if(null!==t){t=u(t);var e=i?t:0;t=\"translate3d(\".concat(i?0:t,\"px, \").concat(e,\"px, 0)\")}n.style.transform=t,n.style[\"-webkit-transform\"]=t}function d(){t&&(o(!0,!0,i),t=null),n.on(\"detailsChanged\",a,!0)}function l(){r(!1,!0,i)}function f(){d(),i=n.options.vertical,n.options.disabled||\"custom\"===n.options.renderMode||(e=\"auto\"===p(n.options.slides,\"perView\",null),n.on(\"detailsChanged\",a),(t=n.slides).length&&l())}n.on(\"created\",f),n.on(\"optionsChanged\",f),n.on(\"beforeOptionsChanged\",(function(){d()})),n.on(\"updated\",l),n.on(\"destroyed\",d)}function k(t,i){return function(e){var r,u,s,d,l,v,h=c();function m(n){var t;a(e.container,\"reverse\",\"rtl\"!==(t=e.container,window.getComputedStyle(t,null).getPropertyValue(\"direction\"))||n?null:\"\"),a(e.container,\"v\",e.options.vertical&&!n?\"\":null),a(e.container,\"disabled\",e.options.disabled&&!n?\"\":null)}function g(){b()&&M()}function b(){var t=null;if(d.forEach((function(n){n.matches&&(t=n.__media)})),t===r)return!1;r||e.emit(\"beforeOptionsChanged\"),r=t;var i=t?s.breakpoints[t]:s;return e.options=n(n({},s),i),m(),I(),A(),C(),!0}function x(n){var t=f(n);return(e.options.vertical?t.height:t.width)/e.size||1}function k(){return e.options.trackConfig.length}function y(t){for(var a in r=!1,s=n(n({},i),t),h.purge(),u=e.size,d=[],s.breakpoints||[]){var o=window.matchMedia(a);o.__media=a,d.push(o),h.add(o,\"change\",g)}h.add(window,\"orientationchange\",z),h.add(window,\"resize\",E),b()}function w(n){e.animator.stop();var t=e.track.details;e.track.init(null!=n?n:t?t.abs:0)}function M(n){w(n),e.emit(\"optionsChanged\")}function T(n,t){if(n)return y(n),void M(t);I(),A();var i=k();C(),k()!==i?M(t):w(t),e.emit(\"updated\")}function C(){var n=e.options.slides;if(\"function\"==typeof n)return e.options.trackConfig=n(e.size,e.slides);for(var t=e.slides,i=t.length,r=\"number\"==typeof n?n:p(n,\"number\",i,!0),a=[],o=p(n,\"perView\",1,!0),u=p(n,\"spacing\",0,!0)/e.size||0,s=\"auto\"===o?u:u/o,c=p(n,\"origin\",\"auto\"),d=0,l=0;l<r;l++){var f=\"auto\"===o?x(t[l]):1/o-u+s,v=\"center\"===c?.5-f/2:\"auto\"===c?0:c;a.push({origin:v,size:f,spacing:u}),d+=f}if(d+=u*(r-1),\"auto\"===c&&!e.options.loop&&1!==o){var h=0;a.map((function(n){var t=d-h;return h+=n.size+u,t>=1||(n.origin=1-t-(d>1?0:1-d)),n}))}e.options.trackConfig=a}function E(){I();var n=e.size;e.options.disabled||n===u||(u=n,T())}function z(){E(),setTimeout(E,500),setTimeout(E,2e3)}function I(){var n=f(e.container);e.size=(e.options.vertical?n.height:n.width)||1}function A(){e.slides=o(e.options.selector,e.container)}e.container=(v=o(t,l||document)).length?v[0]:null,e.destroy=function(){h.purge(),e.emit(\"destroyed\"),m(!0)},e.prev=function(){e.moveToIdx(e.track.details.abs-1,!0)},e.next=function(){e.moveToIdx(e.track.details.abs+1,!0)},e.update=T,y(e.options)}}var y=function(n,i,e){try{return function(n,t){var i,e={};return i={emit:function(n){e[n]&&e[n].forEach((function(n){n(i)}));var t=i.options&&i.options[n];t&&t(i)},moveToIdx:function(n,t,e){var r=i.track.idxToDist(n,t);if(r){var a=i.options.defaultAnimation;i.animator.start([{distance:r,duration:p(e||a,\"duration\",500),easing:p(e||a,\"easing\",(function(n){return 1+--n*n*n*n*n}))}])}},on:function(n,t,i){void 0===i&&(i=!1),e[n]||(e[n]=[]);var r=e[n].indexOf(t);r>-1?i&&delete e[n][r]:i||e[n].push(t)},options:n},function(){if(i.track=m(i),i.animator=h(i),t)for(var n=0,e=t;n<e.length;n++)(0,e[n])(i);i.track.init(i.options.initial||0),i.emit(\"created\")}(),i}(i,t([k(n,{drag:!0,mode:\"snap\",renderMode:\"precision\",rubberband:!0,selector:\".keen-slider__slide\"}),x,b,g],e||[],!0))}catch(n){console.error(n)}};export{y as default};\n","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<section>\n <div class=\"section-header\">\n <h2 class=\"section-title\">${host.sectionTitle}</h2>\n <span class=\"hint\">${host.hintLabel}</span>\n </div>\n <p class=\"empty-state\" ?hidden=${host.hasGames}>${host.emptyMessage}</p>\n <div class=\"games-row\" ?hidden=${!host.hasGames}>${host.renderGames()}</div>\n</section>\n`;\n}\n","import { html, LitElement, nothing, type TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport KeenSlider, { type KeenSliderInstance } from 'keen-slider';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { LabelsEngine } from '@oddsmith/labels-engine';\nimport { OS_LEADERBOARD_CASINO_GAMES } from '@os-leaderboard-casino/constants';\nimport {\n applyImageFallback,\n GAME_IMAGE_FALLBACK,\n} from '@os-leaderboard-casino/utils';\nimport {\n consumeCasinoStore,\n type CasinoStore,\n} from '@os-leaderboard-casino/store';\nimport type { GameItem, GamesView } from './types/view.js';\nimport type { GamesSectionHost } from './games-section.host.js';\nimport renderTemplate from './games-section.html?lit-html';\nimport styles from './games-section.scss?inline';\nimport sharedStyles from '@os-leaderboard-casino/styles/shared.scss?inline';\n\nconst SLIDER_MEDIA_QUERY = '(max-width: 767px)';\n\n/** Qualifying games — title + art cards in a horizontal row. */\n@Component({ selector: OS_LEADERBOARD_CASINO_GAMES })\nexport class OsLeaderboardCasinoGames\n extends LitElement\n implements GamesSectionHost\n{\n static styles = [scss(sharedStyles), scss(styles)];\n\n private _slider?: KeenSliderInstance;\n private _sliderMq?: MediaQueryList;\n private readonly _onSliderMqChange = () => this._syncSlider();\n\n @consumeCasinoStore()\n @property({ attribute: false })\n store!: CasinoStore;\n\n get section(): GamesView | undefined {\n if (!this.store?.isReady()) return undefined;\n return this.store.getGamesView();\n }\n\n get sectionTitle() {\n return LabelsEngine.get(this, 'games.title');\n }\n\n get hintLabel() {\n return LabelsEngine.get(this, 'games.hint');\n }\n\n get emptyMessage() {\n return LabelsEngine.get(this, 'games.empty');\n }\n\n get hasGames(): boolean {\n return (this.section?.games?.length ?? 0) > 0;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._sliderMq = window.matchMedia(SLIDER_MEDIA_QUERY);\n this._sliderMq.addEventListener('change', this._onSliderMqChange);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._sliderMq?.removeEventListener('change', this._onSliderMqChange);\n this._sliderMq = undefined;\n this._destroySlider();\n }\n\n protected updated() {\n this._syncSlider();\n }\n\n private _destroySlider() {\n this._slider?.destroy();\n this._slider = undefined;\n\n const el = this.shadowRoot?.querySelector<HTMLElement>('.games-row');\n if (el) el.classList.remove('keen-slider');\n }\n\n private _syncSlider = () => {\n const games = this.section?.games ?? [];\n if (!games.length) {\n this._destroySlider();\n return;\n }\n\n const el = this.shadowRoot?.querySelector<HTMLElement>('.games-row');\n if (!el) return;\n\n // TODO: slider is shown only on small screens\n // TODO: check how it works in jackpot-widget-b2tech.\n // search for \"keen-slider\"\n const useSlider = this._sliderMq?.matches ?? false;\n\n if (!useSlider) {\n this._destroySlider();\n return;\n }\n\n el.classList.add('keen-slider');\n\n if (!this._slider) {\n this._slider = new KeenSlider(el, {\n mode: 'free',\n slides: { perView: 'auto', spacing: 10 },\n });\n } else {\n this._slider.update();\n }\n };\n\n private renderCard(game: GameItem) {\n return html`\n <article class=\"card keen-slider__slide\" data-game-id=${game.id}>\n <div class=\"thumb\">\n ${game.imageUrl\n ? html`<img\n src=${game.imageUrl}\n alt=${game.title}\n loading=\"lazy\"\n draggable=\"false\"\n @error=${(event: Event) =>\n applyImageFallback(event, GAME_IMAGE_FALLBACK)}\n />`\n : nothing}\n </div>\n <div class=\"body\">\n <div class=\"title\">${game.title}</div>\n </div>\n </article>\n `;\n }\n\n renderGames(): TemplateResult {\n const games = this.section?.games ?? [];\n return html`${games.map((game) => this.renderCard(game))}`;\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n","export default \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"512\\\" height=\\\"512\\\">\\n<path d=\\\"M0 0 C0.916604 -0.00990463 1.83320801 -0.01980927 2.77758789 -0.03001404 C3.77607758 -0.02551239 4.77456726 -0.02101074 5.80331421 -0.01637268 C6.86072815 -0.02323593 7.91814209 -0.03009918 9.00759888 -0.03717041 C12.50913874 -0.05549495 16.01023268 -0.05159093 19.5118103 -0.0459137 C21.94836574 -0.0504745 24.38491989 -0.05577977 26.82147217 -0.0617981 C31.93428767 -0.07074162 37.04694711 -0.06829388 42.15975952 -0.05836487 C48.69655282 -0.04690499 55.23280352 -0.06703517 61.76952553 -0.09628201 C66.80545452 -0.11467882 71.84125453 -0.11434401 76.87720871 -0.10864449 C79.28603244 -0.10849153 81.69486506 -0.11451442 84.10365677 -0.12693596 C87.48304866 -0.14189992 90.86145212 -0.13112619 94.24081421 -0.11402893 C95.22715851 -0.1236969 96.21350281 -0.13336487 97.22973633 -0.14332581 C104.84054595 -0.06315023 111.81370019 1.48853991 117.8477478 6.3525238 C118.3633728 7.00350037 118.8789978 7.65447693 119.4102478 8.32518005 C120.2146228 9.29777771 120.2146228 9.29777771 121.0352478 10.2900238 C124.01942731 14.8425931 124.65975079 18.64331283 124.65316772 24.05345154 C124.65502925 24.70582165 124.65689077 25.35819176 124.65880871 26.03033066 C124.66242105 28.18993027 124.65168927 30.34920292 124.64071655 32.5087738 C124.64007162 34.03646838 124.64021963 35.56416346 124.64111328 37.09185791 C124.64048231 41.16408897 124.6265828 45.23616228 124.6084938 49.30834961 C124.59776844 51.82034568 124.58969552 54.33233672 124.5824585 56.84434509 C124.55577211 65.84855152 124.51282387 74.85253545 124.45216274 83.85657692 C124.42174159 88.39509793 124.39919177 92.93354881 124.38388062 97.47215271 C124.36637619 102.08217052 124.32572591 106.6910485 124.25463867 111.30055237 C124.23355365 112.84577198 124.22037726 114.39112185 124.21551514 115.93647766 C124.20646683 118.00997617 124.16682888 120.08043804 124.11727905 122.15330505 C124.1015686 123.25448669 124.08585815 124.35566833 124.06967163 125.49021912 C123.18393749 129.38207132 121.50108796 130.93983622 118.4102478 133.38768005 C114.34778474 133.53276802 112.28982867 133.20121181 109.2774353 130.4150238 C108.31849009 129.40896488 107.36334801 128.39927804 106.4102478 127.38768005 C103.29746051 124.18814054 100.16615418 121.00697578 97.0352478 117.82518005 C95.7977478 116.54997498 95.7977478 116.54997498 94.5352478 115.24900818 C87.25404931 107.74207616 87.25404931 107.74207616 77.75009155 103.85643005 C76.95731812 103.86674255 76.16454468 103.87705505 75.3477478 103.88768005 C74.55239624 103.87736755 73.75704468 103.86705505 72.93759155 103.85643005 C66.76807299 105.15326858 62.2848312 110.23317241 58.01000977 114.56759644 C57.08586212 115.49235585 57.08586212 115.49235585 56.14304483 116.43579727 C54.088817 118.49374252 52.04182865 120.5587384 49.99472046 122.62376404 C48.51960324 124.10435919 47.04402058 125.58449074 45.56800842 127.06419373 C42.39445042 130.24745185 39.22397865 133.43374122 36.05580521 136.62235832 C31.04351072 141.66650505 26.02303071 146.70245043 21.00115967 151.73706055 C8.52883351 164.24345069 -3.93417789 176.75911231 -16.39230347 189.27964783 C-26.07490952 199.01073135 -35.76069549 208.73859578 -45.45709002 218.45594269 C-50.44723058 223.45759206 -55.43035034 228.46610017 -60.40829062 233.4798907 C-63.51010336 236.60092955 -66.61818747 239.71566429 -69.72803307 242.8286972 C-71.1657405 244.27041503 -72.6008687 245.71471038 -74.0331707 247.16179848 C-75.99370811 249.14183739 -77.96340548 251.11230808 -79.93554688 253.08078003 C-80.49568462 253.65102054 -81.05582236 254.22126104 -81.63293397 254.80878156 C-87.71358614 260.83588554 -94.04793964 265.49033124 -102.8397522 265.63768005 C-117.1465406 265.43088022 -126.129306 252.9659422 -135.48802185 243.47287941 C-137.469996 241.46397158 -139.45656676 239.4597181 -141.4446106 237.45681763 C-147.09158761 231.76737157 -152.73572219 226.07519818 -158.36367798 220.3669281 C-161.82013054 216.86182273 -165.28638415 213.36667181 -168.75914001 209.87772179 C-170.0736423 208.55336283 -171.38449114 207.22536664 -172.69148254 205.89359474 C-174.52138881 204.02974605 -176.36356363 202.17887007 -178.20889282 200.33030701 C-178.73795731 199.78529037 -179.26702179 199.24027374 -179.81211853 198.67874146 C-185.06878321 193.46363695 -191.00843408 189.81487935 -198.5897522 189.82518005 C-200.0128772 189.79230896 -200.0128772 189.79230896 -201.4647522 189.7587738 C-210.96853433 191.67140996 -217.58849451 199.99587713 -224.11123657 206.61619568 C-225.25145921 207.76218425 -226.39237301 208.90748548 -227.53392029 210.05215454 C-229.97995916 212.50763673 -232.42126843 214.96769126 -234.85899353 217.431427 C-238.718088 221.33127214 -242.5887635 225.21948506 -246.46121216 229.10606384 C-254.67966038 237.35773706 -262.88535881 245.62203595 -271.0897522 253.88768005 C-279.94865126 262.81271612 -288.80972777 271.73552323 -297.68555117 280.6437335 C-301.53039152 284.50347266 -305.36780884 288.37039566 -309.19960785 292.24308014 C-311.58907818 294.65501225 -313.98482305 297.06063754 -316.38226891 299.46463966 C-317.48781081 300.57577213 -318.59076934 301.68948227 -319.69085121 302.80602074 C-334.45404505 317.78295911 -334.45404505 317.78295911 -345.2772522 318.70018005 C-356.28637818 318.38757059 -363.00849494 310.69330458 -370.21231079 303.30711365 C-371.96760237 301.50976158 -373.74349038 299.73489558 -375.52334595 297.9618988 C-376.65873337 296.81602318 -377.79289202 295.66892844 -378.9256897 294.52049255 C-379.45069061 293.99529022 -379.97569153 293.47008789 -380.51660156 292.92897034 C-385.52468542 287.75867635 -388.01849971 283.24223132 -388.0272522 276.01268005 C-388.04658813 274.95307068 -388.06592407 273.8934613 -388.08584595 272.80174255 C-386.92491103 264.8123164 -382.28765004 259.50200729 -376.69525146 253.998703 C-375.65516916 252.95137745 -375.65516916 252.95137745 -374.59407508 251.8828938 C-372.28057527 249.55817038 -369.95312353 247.24795597 -367.62539673 244.93748474 C-365.9588415 243.26878251 -364.29315284 241.59921446 -362.62826538 239.92884827 C-358.11257122 235.40347366 -353.58449867 230.8906754 -349.05382013 226.3803091 C-344.79298725 222.13528004 -340.54080372 217.8816168 -336.28830503 213.62824336 C-327.86233026 205.20126861 -319.4267494 196.78397602 -310.98574829 188.37205505 C-302.80140324 180.21589122 -294.62410235 172.05275015 -286.45449829 163.88182068 C-285.69947939 163.12668191 -285.69947939 163.12668191 -284.92920758 162.35628781 C-284.42671816 161.85371768 -283.92422875 161.35114756 -283.40651238 160.83334804 C-274.09521056 151.52066533 -264.77733897 142.21458073 -255.45640115 132.91154324 C-252.16449208 129.6256577 -248.87454119 126.33781935 -245.58517838 123.04938507 C-241.15597725 118.62219368 -236.72170766 114.20014095 -232.28347015 109.78200912 C-230.65557764 108.1599556 -229.0293686 106.53621053 -227.40497208 104.91065598 C-225.18731188 102.69201324 -222.96359656 100.47962176 -220.73822021 98.26872253 C-220.09696453 97.62436965 -219.45570885 96.98001676 -218.79502118 96.31613803 C-211.81105169 89.40702662 -205.43121136 85.34760445 -195.29678345 85.3993988 C-183.96191436 86.94415087 -174.37348702 100.49688504 -166.66521835 108.29817963 C-164.7247656 110.26099397 -162.7800853 112.21952995 -160.83416748 114.17692566 C-155.30933945 119.73504268 -149.78892783 125.29749076 -144.27871704 130.87010193 C-140.8890877 134.29751371 -137.49207012 137.71745459 -134.09030533 141.13282013 C-132.80460539 142.4265277 -131.52167786 143.7229971 -130.2416954 145.02236176 C-128.45042978 146.84030581 -126.64987831 148.64856821 -124.84707642 150.45506287 C-124.07221893 151.24845566 -124.07221893 151.24845566 -123.28170776 152.05787659 C-117.43260512 157.87572888 -111.42296754 162.10226279 -103.0350647 162.51268005 C-90.91866479 161.89331137 -82.60181517 150.55090009 -74.62539673 142.5844574 C-73.65229179 141.61599239 -72.67899417 140.64772096 -71.70552063 139.67962646 C-69.08567766 137.07278196 -66.46906847 134.46271644 -63.85348368 131.85160017 C-62.21696328 130.21802622 -60.57986416 128.58503437 -58.94259262 126.95221329 C-53.81241285 121.83566483 -48.6842065 116.71715081 -43.55889904 111.5957216 C-37.65463435 105.69595069 -31.7438605 99.80280398 -25.82742035 93.91524351 C-21.24192606 89.35135472 -16.66220209 84.78172804 -12.08682907 80.20769274 C-9.35850524 77.48041619 -6.62781273 74.75561712 -3.89108658 72.03676987 C-1.32189432 69.48404238 1.24005968 66.92426756 3.79663658 64.3589077 C5.1819389 62.97246739 6.57466831 61.59346054 7.96760559 60.21469116 C8.79179489 59.38493271 9.61598419 58.55517426 10.46514893 57.70027161 C11.18297483 56.98391226 11.90080074 56.26755291 12.64037895 55.5294857 C16.28512994 51.11879265 16.90401829 47.01666363 16.4102478 41.38768005 C14.49224857 36.81076743 12.14663665 33.78272839 8.59384155 30.34861755 C7.66507202 29.43853943 6.73630249 28.5284613 5.77938843 27.59080505 C4.8028154 26.64743322 3.82559524 25.70473085 2.8477478 24.76268005 C0.92352916 22.90165988 -0.99273245 21.03332312 -2.90615845 19.16111755 C-3.75637573 18.34046814 -4.60659302 17.51981873 -5.48257446 16.67430115 C-8.64326125 13.24445612 -9.62963808 11.52442772 -9.4647522 6.82518005 C-8.5897522 3.38768005 -8.5897522 3.38768005 -6.82192421 1.69706631 C-4.29483135 0.21468026 -2.90656445 0.0088894 0 0 Z \\\" fill=\\\"#00B200\\\" transform=\\\"translate(387.5897521972656,96.61231994628906)\\\"/>\\n</svg>\\n\"","export default \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"512\\\" height=\\\"512\\\">\\n<path d=\\\"M0 0 C4.14983161 3.39360111 7.88389503 7.24725314 11.62255859 11.08056641 C13.37785017 12.87791847 15.15373818 14.65278447 16.93359375 16.42578125 C18.06898118 17.57165687 19.20313982 18.71875162 20.3359375 19.8671875 C20.86093842 20.39238983 21.38593933 20.91759216 21.92684937 21.45870972 C26.93493322 26.6290037 29.42874752 31.14544873 29.4375 38.375 C29.45683594 39.43460938 29.47617187 40.49421875 29.49609375 41.5859375 C28.33515883 49.57536365 23.69789785 54.88567276 18.10549927 60.38897705 C17.41211106 61.08719409 16.71872286 61.78541112 16.00432289 62.50478625 C13.69082307 64.82950968 11.36337134 67.13972408 9.03564453 69.45019531 C7.36908931 71.11889754 5.70340064 72.7884656 4.03851318 74.45883179 C-0.47718097 78.9842064 -5.00525352 83.49700465 -9.53593206 88.00737095 C-13.79676495 92.25240002 -18.04894848 96.50606325 -22.30144717 100.7594367 C-30.72742194 109.18641144 -39.1630028 117.60370404 -47.60400391 126.015625 C-55.78834896 134.17178883 -63.96564985 142.33492991 -72.13525391 150.50585938 C-72.89027281 151.26099815 -72.89027281 151.26099815 -73.66054462 152.03139225 C-74.16303403 152.53396237 -74.66552345 153.0365325 -75.18323982 153.55433202 C-84.49454164 162.86701472 -93.81241322 172.17309932 -103.13335105 181.47613682 C-106.42526012 184.76202236 -109.71521101 188.04986071 -113.00457382 191.33829498 C-117.43377494 195.76548637 -121.86804453 200.1875391 -126.30628204 204.60567093 C-127.93417455 206.22772446 -129.5603836 207.85146952 -131.18478012 209.47702408 C-133.40244031 211.69566681 -135.62615563 213.90805829 -137.85153198 216.11895752 C-138.49278767 216.76331041 -139.13404335 217.40766329 -139.79473102 218.07154202 C-146.7787005 224.98065343 -153.15854083 229.0400756 -163.29296875 228.98828125 C-174.62783784 227.44352918 -184.21626518 213.89079501 -191.92453384 206.08950043 C-193.8649866 204.12668608 -195.80966689 202.1681501 -197.75558472 200.21075439 C-203.28041275 194.65263737 -208.80082436 189.0901893 -214.31103516 183.51757812 C-217.7006645 180.09016634 -221.09768208 176.67022547 -224.49944687 173.25485992 C-225.78514681 171.96115236 -227.06807434 170.66468296 -228.34805679 169.3653183 C-230.13932242 167.54737424 -231.93987389 165.73911185 -233.74267578 163.93261719 C-234.51753326 163.1392244 -234.51753326 163.1392244 -235.30804443 162.32980347 C-241.15714708 156.51195117 -247.16678466 152.28541726 -255.5546875 151.875 C-267.67108741 152.49436869 -275.98793703 163.83677996 -283.96435547 171.80322266 C-284.9374604 172.77168767 -285.91075803 173.73995909 -286.88423157 174.70805359 C-289.50407453 177.31489809 -292.12068373 179.92496361 -294.73626852 182.53607988 C-296.37278892 184.16965383 -298.00988804 185.80264568 -299.64715958 187.43546677 C-304.77733934 192.55201523 -309.9055457 197.67052925 -315.03085315 202.79195845 C-320.93511785 208.69172936 -326.8458917 214.58487607 -332.76233184 220.47243655 C-337.34782614 225.03632534 -341.92755011 229.60595201 -346.50292313 234.17998731 C-349.23124695 236.90726387 -351.96193947 239.63206293 -354.69866562 242.35091019 C-357.26785788 244.90363767 -359.82981188 247.4634125 -362.38638878 250.02877235 C-363.7716911 251.41521266 -365.16442051 252.79421952 -366.55735779 254.17298889 C-367.79364174 255.41762657 -367.79364174 255.41762657 -369.05490112 256.68740845 C-369.77272703 257.4037678 -370.49055294 258.12012714 -371.23013115 258.85819435 C-374.87488213 263.26888741 -375.49377049 267.37101643 -375 273 C-373.08200076 277.57691262 -370.73638885 280.60495167 -367.18359375 284.0390625 C-366.25482422 284.94914062 -365.32605469 285.85921875 -364.36914062 286.796875 C-363.39256759 287.74024684 -362.41534743 288.6829492 -361.4375 289.625 C-359.51328136 291.48602017 -357.59701975 293.35435694 -355.68359375 295.2265625 C-354.83337646 296.04721191 -353.98315918 296.86786133 -353.10717773 297.71337891 C-349.94649095 301.14322394 -348.96011412 302.86325233 -349.125 307.5625 C-350 311 -350 311 -351.76782799 312.69061375 C-354.29492085 314.1729998 -355.68318774 314.37879066 -358.5897522 314.38768005 C-359.9646582 314.402537 -359.9646582 314.402537 -361.36734009 314.41769409 C-362.36582977 314.41319244 -363.36431946 314.4086908 -364.39306641 314.40405273 C-365.97918732 314.41434761 -365.97918732 314.41434761 -367.59735107 314.42485046 C-371.09889093 314.443175 -374.59998488 314.43927098 -378.1015625 314.43359375 C-380.53811794 314.43815455 -382.97467209 314.44345982 -385.41122437 314.44947815 C-390.52403987 314.45842167 -395.63669931 314.45597393 -400.74951172 314.44604492 C-407.28630501 314.43458505 -413.82255572 314.45471522 -420.35927773 314.48396206 C-425.39520671 314.50235887 -430.43100673 314.50202407 -435.46696091 314.49632454 C-437.87578464 314.49617158 -440.28461726 314.50219447 -442.69340897 314.51461601 C-446.07280086 314.52957998 -449.45120431 314.51880625 -452.83056641 314.50170898 C-453.81691071 314.51137695 -454.803255 314.52104492 -455.81948853 314.53100586 C-463.43029815 314.45083028 -470.40345239 312.89914014 -476.4375 308.03515625 C-476.953125 307.38417969 -477.46875 306.73320312 -478 306.0625 C-478.53625 305.41410156 -479.0725 304.76570313 -479.625 304.09765625 C-482.6091795 299.54508695 -483.24950299 295.74436722 -483.24291992 290.33422852 C-483.24478145 289.68185841 -483.24664297 289.0294883 -483.24856091 288.3573494 C-483.25217325 286.19774979 -483.24144147 284.03847713 -483.23046875 281.87890625 C-483.22982382 280.35121168 -483.22997182 278.82351659 -483.23086548 277.29582214 C-483.23023451 273.22359108 -483.216335 269.15151778 -483.198246 265.07933044 C-483.18752064 262.56733437 -483.17944772 260.05534334 -483.17221069 257.54333496 C-483.14552431 248.53912853 -483.10257606 239.53514461 -483.04191494 230.53110313 C-483.01149379 225.99258213 -482.98894396 221.45413125 -482.97363281 216.91552734 C-482.95612838 212.30550953 -482.91547811 207.69663155 -482.84439087 203.08712769 C-482.82330584 201.54190808 -482.81012946 199.9965582 -482.80526733 198.45120239 C-482.79621903 196.37770388 -482.75658107 194.30724202 -482.70703125 192.234375 C-482.6913208 191.13319336 -482.67561035 190.03201172 -482.65942383 188.89746094 C-481.77368968 185.00560873 -480.09084015 183.44784383 -477 181 C-472.93753694 180.85491203 -470.87958087 181.18646825 -467.8671875 183.97265625 C-466.90824229 184.97871517 -465.9531002 185.98840202 -465 187 C-461.88721271 190.19953951 -458.75590638 193.38070428 -455.625 196.5625 C-454.8 197.41263672 -453.975 198.26277344 -453.125 199.13867188 C-445.84380151 206.6456039 -445.84380151 206.6456039 -436.33984375 210.53125 C-435.54707031 210.5209375 -434.75429688 210.510625 -433.9375 210.5 C-433.14214844 210.5103125 -432.34679687 210.520625 -431.52734375 210.53125 C-425.35782518 209.23441148 -420.8745834 204.15450764 -416.59976196 199.82008362 C-415.98366353 199.20357734 -415.3675651 198.58707106 -414.73279703 197.95188278 C-412.6785692 195.89393754 -410.63158085 193.82894165 -408.58447266 191.76391602 C-407.10935544 190.28332087 -405.63377278 188.80318931 -404.15776062 187.32348633 C-400.98420262 184.1402282 -397.81373085 180.95393883 -394.6455574 177.76532173 C-389.63326291 172.721175 -384.61278291 167.68522963 -379.59091187 162.65061951 C-367.11858571 150.14422937 -354.65557431 137.62856775 -342.19744873 125.10803223 C-332.51484267 115.37694871 -322.82905671 105.64908428 -313.13266218 95.93173736 C-308.14252161 90.93008799 -303.15940186 85.92157988 -298.18146157 80.90778935 C-295.07964883 77.7867505 -291.97156472 74.67201577 -288.86171913 71.55898285 C-287.42401169 70.11726502 -285.9888835 68.67296967 -284.5565815 67.22588158 C-282.59604409 65.24584266 -280.62634672 63.27537197 -278.65420532 61.30690002 C-277.81399871 60.45153926 -277.81399871 60.45153926 -276.95681822 59.57889849 C-270.87616606 53.55179451 -264.54181256 48.89734881 -255.75 48.75 C-241.4432116 48.95679983 -232.4604462 61.42173785 -223.10173035 70.91480064 C-221.1197562 72.92370848 -219.13318544 74.92796195 -217.1451416 76.93086243 C-211.49816459 82.62030848 -205.85403 88.31248187 -200.22607422 94.02075195 C-196.76962165 97.52585732 -193.30336805 101.02100824 -189.83061218 104.50995827 C-188.5161099 105.83431722 -187.20526105 107.16231342 -185.89826965 108.49408531 C-184.06836339 110.35793401 -182.22618857 112.20880998 -180.38085938 114.05737305 C-179.58726265 114.87489799 -179.58726265 114.87489799 -178.77763367 115.7089386 C-173.52096899 120.92404311 -167.58131812 124.5728007 -160 124.5625 C-159.05125 124.58441406 -158.1025 124.60632813 -157.125 124.62890625 C-147.62121786 122.71627009 -141.00125769 114.39180292 -134.47851562 107.77148438 C-133.33829299 106.6254958 -132.19737919 105.48019457 -131.05583191 104.33552551 C-128.60979304 101.88004333 -126.16848377 99.41998879 -123.73075867 96.95625305 C-119.8716642 93.05640792 -116.0009887 89.168195 -112.12854004 85.28161621 C-103.91009181 77.02994299 -95.70439338 68.76564411 -87.5 60.5 C-78.64110093 51.57496393 -69.78002442 42.65215683 -60.90420103 33.74394655 C-57.05936067 29.8842074 -53.22194336 26.01728439 -49.39014435 22.14459991 C-47.00067402 19.7326678 -44.60492914 17.32704252 -42.20748329 14.92304039 C-41.10194139 13.81190792 -39.99898285 12.69819778 -38.89890099 11.58165932 C-27.6732618 0.19349304 -15.7153632 -9.8301215 0 0 Z \\\" fill=\\\"#C20000\\\" transform=\\\"translate(483,101)\\\"/>\\n</svg>\\n\"","export default \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"512\\\" height=\\\"512\\\">\\n<rect x=\\\"56\\\" y=\\\"196\\\" width=\\\"400\\\" height=\\\"120\\\" rx=\\\"60\\\" fill=\\\"#888888\\\"/>\\n</svg>\\n\"","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<section>\n <div class=\"section-header\">\n <h2 class=\"section-title\">${host.climbTitle}</h2>\n </div>\n\n <div class=\"card\">\n <div class=\"top\">\n <div class=\"rank-ring\"><b>#${host.section.rank}</b></div>\n <div class=\"who\">\n <div class=\"name\">${host.renderName()}</div>\n <div class=\"pts\">${host.pointsLabel}</div>\n </div>\n <span class=\"trend ${host.trendClass}\">${host.renderTrend()}</span>\n </div>\n\n <div class=\"progress\">\n <div class=\"progress-labels\">\n <span class=\"goal\" ?hidden=${!host.hasNextTier}>\n <b>${host.pointsToNextLabel}</b>\n ${host.toReachTopLabel} ${host.nextTierRank}\n </span>\n <span class=\"target\" ?hidden=${!host.hasNextTier}>\n <span class=\"target-label\">${host.nextPrefixLabel}</span>\n <em>${host.nextTierLabel}</em>\n </span>\n </div>\n <div\n class=\"bar\"\n role=\"progressbar\"\n aria-valuenow=\"${host.progressPct}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n <div class=\"fill\" style=\"width: ${host.progressPct}%\"></div>\n </div>\n </div>\n </div>\n</section>\n`;\n}\n","import { html, LitElement, nothing, type TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport rankUpSvg from '@os-leaderboard-casino/assets/icons/table.rank-up.svg?raw';\nimport rankDownSvg from '@os-leaderboard-casino/assets/icons/table.rank-down.svg?raw';\nimport rankNeutralSvg from '@os-leaderboard-casino/assets/icons/table.rank-neutral.svg?raw';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { LabelsEngine } from '@oddsmith/labels-engine';\nimport { OS_LEADERBOARD_CASINO_CLIMB } from '@os-leaderboard-casino/constants';\nimport {\n addViewBox,\n formatNumber,\n renderPlayerName,\n} from '@os-leaderboard-casino/utils';\nimport {\n consumeCasinoStore,\n type CasinoStore,\n} from '@os-leaderboard-casino/store';\nimport type { ClimbView } from './types/view.js';\nimport type { ClimbSectionHost } from './climb-section.host.js';\nimport renderTemplate from './climb-section.html?lit-html';\nimport styles from './climb-section.scss?inline';\nimport sharedStyles from '@os-leaderboard-casino/styles/shared.scss?inline';\n\nconst rankUpSvgVb = addViewBox(rankUpSvg);\nconst rankDownSvgVb = addViewBox(rankDownSvg);\nconst rankNeutralSvgVb = addViewBox(rankNeutralSvg);\n\n/** \"Your climb\" — progress towards the next prize tier with rank trend. */\n@Component({ selector: OS_LEADERBOARD_CASINO_CLIMB })\nexport class OsLeaderboardCasinoClimb\n extends LitElement\n implements ClimbSectionHost\n{\n static styles = [scss(sharedStyles), scss(styles)];\n\n @consumeCasinoStore()\n @property({ attribute: false })\n store!: CasinoStore;\n\n get section(): ClimbView | undefined {\n if (!this.store?.isReady()) return undefined;\n return this.store.getClimbView();\n }\n\n get climbTitle() {\n return LabelsEngine.get(this, 'climb.title');\n }\n\n get pointsLabel(): string {\n if (this.section == null) return '';\n const pts = formatNumber(this.section.points, this.section.locale);\n return `${pts} ${LabelsEngine.get(this, 'climb.points')}`;\n }\n\n get trendClass(): string {\n const trend = this.section?.trend ?? 0;\n return trend > 0 ? 'up' : trend < 0 ? 'down' : 'flat';\n }\n\n renderTrend(): TemplateResult {\n const trend = this.section?.trend ?? 0;\n if (trend > 0) return html`${unsafeSVG(rankUpSvgVb)}<b>${trend}</b>`;\n if (trend < 0)\n return html`${unsafeSVG(rankDownSvgVb)}<b>${Math.abs(trend)}</b>`;\n return html`${unsafeSVG(rankNeutralSvgVb)}<b\n >${LabelsEngine.get(this, 'climb.steady')}</b\n >`;\n }\n\n get pointsToNextLabel(): string {\n if (this.section == null) return '';\n const pts = formatNumber(\n this.section.pointsToNextTier,\n this.section.locale,\n );\n return `${pts} ${LabelsEngine.get(this, 'climb.points')}`;\n }\n\n get toReachTopLabel() {\n return LabelsEngine.get(this, 'climb.toReachTop');\n }\n\n get hasNextTier(): boolean {\n return this.section?.nextTierRank != null;\n }\n\n get nextTierRank(): number {\n return this.section?.nextTierRank ?? 0;\n }\n\n get nextPrefixLabel() {\n return LabelsEngine.get(this, 'climb.next');\n }\n\n get nextTierLabel(): string {\n return this.section?.nextTierLabel ?? '';\n }\n\n get progressPct(): number {\n return Math.round(\n Math.min(1, Math.max(0, this.section?.progress ?? 0)) * 100,\n );\n }\n\n renderName() {\n return renderPlayerName(this.section?.username ?? '');\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n","/** Custom events from the table section. */\nexport const TableEvents = {\n /** Table CTA — current player (`isYou`). */\n open: 'leaderboard-player-open',\n} as const;\n\nexport type TableEventName = (typeof TableEvents)[keyof typeof TableEvents];\n\nexport interface TableOpenDetail {\n playerId: string;\n}\n","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<section>\n <div class=\"section-header\">\n <h2 class=\"section-title\">${host.sectionTitle}</h2>\n </div>\n\n <div class=\"card-shell\">\n <div class=\"card-accent\" aria-hidden=\"true\"></div>\n <div class=\"card\">\n <div class=\"table-scroll\">\n <div class=\"table-head\">\n <span class=\"col-rank\">${host.colRank}</span>\n <span class=\"col-player\">${host.colPlayer}</span>\n <span class=\"col-games\">${host.colGames}</span>\n <span class=\"col-win-rate\">${host.colWinRate}</span>\n <span class=\"col-bet\">${host.colBet}</span>\n <span class=\"col-points\">${host.colPoints}</span>\n <span class=\"col-rank-change\">${host.colChange}</span>\n </div>\n <div class=\"empty\" ?hidden=${host.hasPlayers}>${host.emptyMessage}</div>\n ${host.renderPlayers()}\n <div class=\"divider\" ?hidden=${!host.showPinned}>${host.yourPositionLabel}</div>\n ${host.renderPinnedRow()}\n </div>\n </div>\n </div>\n\n <button type=\"button\" class=\"cta\" @click=${host.onOpenClick}>\n ${host.ctaLabel}\n </button>\n</section>\n`;\n}\n","import { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport rankUpSvg from '@os-leaderboard-casino/assets/icons/table.rank-up.svg?raw';\nimport rankDownSvg from '@os-leaderboard-casino/assets/icons/table.rank-down.svg?raw';\nimport rankNeutralSvg from '@os-leaderboard-casino/assets/icons/table.rank-neutral.svg?raw';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { LabelsEngine } from '@oddsmith/labels-engine';\nimport { OS_LEADERBOARD_CASINO_TABLE } from '@os-leaderboard-casino/constants';\nimport {\n addViewBox,\n applyImageFallback,\n dicebearAvatarUrl,\n fillLabel,\n formatMoney,\n formatNumber,\n podiumVariantForRank,\n prizeForPlace,\n renderPlayerName,\n} from '@os-leaderboard-casino/utils';\nimport {\n consumeCasinoStore,\n type CasinoStore,\n} from '@os-leaderboard-casino/store';\nimport { TableEvents } from './types/events.js';\nimport type { TablePlayer, TableView } from './types/view.js';\nimport prizeMedalIcon from '@os-leaderboard-casino/assets/icons/prize.medal.svg?raw';\nimport type { TableSectionHost } from './table-section.host.js';\nimport renderTemplate from './table-section.html?lit-html';\nimport styles from './table-section.scss?inline';\nimport sharedStyles from '@os-leaderboard-casino/styles/shared.scss?inline';\n\nconst rankUpSvgVb = addViewBox(rankUpSvg);\nconst rankDownSvgVb = addViewBox(rankDownSvg);\nconst rankNeutralSvgVb = addViewBox(rankNeutralSvg);\nconst prizeMedalSvg = addViewBox(prizeMedalIcon);\n\n/** Top-players preview — pinned current user, golden CTA. */\n@Component({ selector: OS_LEADERBOARD_CASINO_TABLE })\nexport class OsLeaderboardCasinoTable\n extends LitElement\n implements TableSectionHost\n{\n static styles = [scss(sharedStyles), scss(styles)];\n\n private _resizeObserver?: ResizeObserver;\n private clock?: ReturnType<typeof setInterval>;\n\n @state()\n private now = Date.now();\n\n connectedCallback() {\n super.connectedCallback();\n this._resizeObserver = new ResizeObserver(() => this._syncStickyWidth());\n this._resizeObserver.observe(this);\n this.clock = setInterval(() => {\n this.now = Date.now();\n }, 1000);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._resizeObserver?.disconnect();\n if (this.clock) clearInterval(this.clock);\n }\n\n protected updated() {\n this._syncStickyWidth();\n }\n\n private _syncStickyWidth() {\n const card = this.shadowRoot?.querySelector<HTMLElement>('.card');\n const player = this.shadowRoot?.querySelector<HTMLElement>('.col-player');\n\n if (card) {\n this.style.setProperty(\n '--table-scrollport-width',\n `${card.clientWidth}px`,\n );\n }\n\n if (player) {\n this.style.setProperty(\n '--sticky-player-width',\n `${player.offsetWidth}px`,\n );\n }\n }\n\n @consumeCasinoStore()\n @property({ attribute: false })\n store!: CasinoStore;\n\n get section(): TableView | undefined {\n if (!this.store?.isReady()) return undefined;\n return this.store.getTableView();\n }\n\n get finished(): boolean {\n if (!this.store?.isReady()) return false;\n return this.store.isCampaignOver(this.now);\n }\n\n get sectionTitle() {\n return LabelsEngine.get(this, 'table.title');\n }\n\n get ctaLabel() {\n return LabelsEngine.get(\n this,\n this.finished ? 'cta.finished' : 'cta.label',\n );\n }\n\n get colRank() {\n return LabelsEngine.get(this, 'table.rank');\n }\n\n get colPlayer() {\n return LabelsEngine.get(this, 'table.player');\n }\n\n get colGames() {\n return LabelsEngine.get(this, 'table.games');\n }\n\n get colWinRate() {\n return LabelsEngine.get(this, 'table.winRate');\n }\n\n get colBet() {\n return LabelsEngine.get(this, 'table.totalBet');\n }\n\n get colPoints() {\n return LabelsEngine.get(this, 'table.points');\n }\n\n get colChange() {\n return LabelsEngine.get(this, 'table.change');\n }\n\n private get visiblePlayers(): TablePlayer[] {\n return this.section?.players ?? [];\n }\n\n private get pinnedCurrentUser(): TablePlayer | undefined {\n const current = this.section?.currentUser;\n if (!current?.isYou) return undefined;\n const players = this.section?.players ?? [];\n return players.some((p) => p.isYou) ? undefined : current;\n }\n\n get hasPlayers(): boolean {\n return this.visiblePlayers.length > 0;\n }\n\n get emptyMessage() {\n return LabelsEngine.get(this, 'table.empty');\n }\n\n get showPinned(): boolean {\n return this.pinnedCurrentUser != null;\n }\n\n get yourPositionLabel() {\n return LabelsEngine.get(this, 'table.yourPosition');\n }\n\n onOpenClick() {\n this.dispatchEvent(\n new CustomEvent(TableEvents.open, {\n detail: { playerId: this.section?.currentUser?.id ?? '' },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private resolvePlayerPrizeLabel(player: TablePlayer): string | null {\n if (player.prizeLabel) return player.prizeLabel;\n const prize = prizeForPlace(this.section?.prizes ?? [], player.rank);\n return prize?.label ?? null;\n }\n\n private renderRankChange(player: TablePlayer) {\n if (player.previousRank == null)\n return html`<span class=\"chip flat\"\n >${unsafeSVG(rankNeutralSvgVb)}</span\n >`;\n const delta = player.previousRank - player.rank;\n if (delta === 0)\n return html`<span class=\"chip flat\"\n >${unsafeSVG(rankNeutralSvgVb)}</span\n >`;\n if (delta > 0)\n return html`<span class=\"chip up\"\n >${unsafeSVG(rankUpSvgVb)}${delta}</span\n >`;\n return html`<span class=\"chip down\"\n >${unsafeSVG(rankDownSvgVb)}${Math.abs(delta)}</span\n >`;\n }\n\n private renderMedal(rank: 1 | 2 | 3) {\n const medalLabel = fillLabel(LabelsEngine.get(this, 'prize.medal'), { rank });\n return html`\n <span\n class=\"coin ${podiumVariantForRank(rank)}\"\n role=\"img\"\n aria-label=\"${medalLabel}\"\n >\n ${unsafeSVG(prizeMedalSvg)}\n <span class=\"rank-text\">${rank}</span>\n </span>\n `;\n }\n\n private renderRow(player: TablePlayer) {\n const podiumClass =\n !player.isYou && player.rank <= 3 ? `podium-${player.rank}` : '';\n const prizeLabel = this.resolvePlayerPrizeLabel(player);\n const { currency, locale } = this.store.getData();\n return html`\n <div\n class=\"row ${player.isYou ? 'you' : ''} ${podiumClass}\"\n >\n ${player.rank <= 3 && !player.isYou\n ? html`<span class=\"rank col-rank\"\n >${this.renderMedal(player.rank as 1 | 2 | 3)}</span\n >`\n : html`<span class=\"rank col-rank\">#${player.rank}</span>`}\n <div class=\"player col-player\">\n <span class=\"avatar\">\n ${player.avatarUrl\n ? html`<img\n src=${player.avatarUrl}\n alt=\"\"\n loading=\"lazy\"\n @error=${(event: Event) =>\n applyImageFallback(event, dicebearAvatarUrl(player.username))}\n />`\n : nothing}\n </span>\n <span class=\"who\">\n <span class=\"username\">\n ${renderPlayerName(player.username, {\n suffix: player.isYou\n ? html`<span class=\"you-tag\"\n >${LabelsEngine.get(this, 'table.you')}</span\n >`\n : nothing,\n })}\n </span>\n ${prizeLabel\n ? html`<span class=\"prize-sub\"\n ><span class=\"prize-label\">${prizeLabel}</span></span\n >`\n : nothing}\n </span>\n </div>\n <span class=\"col-games\">${formatNumber(player.gamesPlayed, locale)}</span>\n <span class=\"col-win-rate\">${formatNumber(player.winRate, locale)}${LabelsEngine.get(this, 'table.percent')}</span>\n <span class=\"col-bet\">${formatMoney(player.totalBet, currency, locale)}</span>\n <span class=\"col-points\"><b>${formatNumber(player.points, locale)}</b></span>\n <span class=\"col-rank-change\">${this.renderRankChange(player)}</span>\n </div>\n `;\n }\n\n renderPlayers() {\n return html`${this.visiblePlayers.map((p) => this.renderRow(p))}`;\n }\n\n renderPinnedRow() {\n const pinned = this.pinnedCurrentUser;\n if (!pinned) return nothing;\n return this.renderRow(pinned);\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<footer class=\"page-footer\">\n <!-- <p>${host.displayText}</p> -->\n <!-- TODO: hardcoded -->\n <p>\n Powered by\n <a href=\"https://oddsmith.io\" target=\"_blank\" rel=\"noopener noreferrer\">\n Oddsmith.io\n </a>\n </p>\n</footer>\n`;\n}\n","import { LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { OS_LEADERBOARD_CASINO_FOOTER } from '@os-leaderboard-casino/constants';\nimport {\n consumeCasinoStore,\n type CasinoStore,\n} from '@os-leaderboard-casino/store';\nimport type { FooterView } from './types/view.js';\nimport type { FooterSectionHost } from './footer-section.host.js';\nimport renderTemplate from './footer-section.html?lit-html';\nimport styles from './footer-section.scss?inline';\n\n@Component({ selector: OS_LEADERBOARD_CASINO_FOOTER })\nexport class OsLeaderboardCasinoFooter\n extends LitElement\n implements FooterSectionHost\n{\n static styles = [scss(styles)];\n\n @consumeCasinoStore()\n @property({ attribute: false })\n store!: CasinoStore;\n\n get section(): FooterView | undefined {\n if (!this.store?.isReady()) return undefined;\n return this.store.getFooterView();\n }\n\n get displayText(): string {\n return this.section?.text ?? '';\n }\n\n render() {\n if (!this.displayText) return nothing;\n return renderTemplate(this);\n }\n}\n","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"legals\">\n <p class=\"empty-state\" ?hidden=${!host.isEmpty}>${host.emptyMessage}</p>\n <nav class=\"legals__links\" ?hidden=${host.isEmpty}>\n ${host.renderLinks()}\n </nav>\n <dialog @click=${host.onDialogClick}>\n <div class=\"dialog-panel\">\n <div class=\"dialog-header\">\n <span class=\"dialog-title\">${host.dialogTitle}</span>\n <button\n class=\"dialog-close\"\n type=\"button\"\n aria-label=\"${host.closeLabel}\"\n @click=${host.onDialogClose}\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M2 2l10 10M12 2L2 12\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n </button>\n </div>\n <div class=\"dialog-body\">${host.renderDialogContent()}</div>\n </div>\n </dialog>\n</div>\n`;\n}\n","import { LitElement, html, nothing } from 'lit';\nimport { property, state, query } from 'lit/decorators.js';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { LabelsEngine } from '@oddsmith/labels-engine';\nimport { OS_LEADERBOARD_CASINO_LEGALS } from '@os-leaderboard-casino/constants';\nimport { isSafeHttpUrl, sanitizeLegalHtml } from '@os-leaderboard-casino/utils';\nimport {\n consumeCasinoStore,\n type CasinoStore,\n} from '@os-leaderboard-casino/store';\nimport type { LegalLink, LegalsView } from './types/view.js';\nimport type { LegalsSectionHost } from './legals-section.host.js';\nimport renderTemplate from './legals-section.html?lit-html';\nimport styles from './legals-section.scss?inline';\n\n@Component({ selector: OS_LEADERBOARD_CASINO_LEGALS })\nexport class OsLeaderboardCasinoLegals\n extends LitElement\n implements LegalsSectionHost\n{\n static styles = [scss(styles)];\n\n @consumeCasinoStore()\n @property({ attribute: false })\n store!: CasinoStore;\n\n get section(): LegalsView | undefined {\n if (!this.store?.isReady()) return undefined;\n return this.store.getLegalsView();\n }\n\n @state()\n private _activeLink: LegalLink | null = null;\n\n @query('dialog')\n private _dialog!: HTMLDialogElement;\n\n get dialogTitle(): string {\n return this._activeLink?.label ?? '';\n }\n\n get closeLabel(): string {\n return LabelsEngine.get(this, 'legals.close');\n }\n\n get isEmpty(): boolean {\n return (this.section?.links?.length ?? 0) === 0;\n }\n\n get emptyMessage() {\n return LabelsEngine.get(this, 'legals.empty');\n }\n\n get dialogContent(): string {\n if (this._activeLink?.type !== 'internal') return '';\n return this._activeLink.body;\n }\n\n renderDialogContent(): unknown {\n const raw = this.dialogContent;\n if (!raw.trim()) return nothing;\n const safe = sanitizeLegalHtml(raw);\n if (!safe) {\n console.error(\n '[os-leaderboard-casino] legal body was empty after sanitizing; dialog not filled.',\n );\n return nothing;\n }\n return unsafeHTML(safe);\n }\n\n protected updated(changedProps: Map<string, unknown>): void {\n super.updated(changedProps);\n if (changedProps.has('_activeLink')) {\n const dialog = this._dialog;\n if (!dialog) return;\n if (this._activeLink && !dialog.open) {\n dialog.showModal();\n } else if (!this._activeLink && dialog.open) {\n dialog.close();\n }\n }\n }\n\n readonly onDialogClose = () => {\n this._activeLink = null;\n };\n\n readonly onDialogClick = (e: MouseEvent) => {\n if (e.target === this._dialog) {\n this._activeLink = null;\n }\n };\n\n private _onLinkClick(link: LegalLink): void {\n if (link.type === 'external') {\n if (isSafeHttpUrl(link.href)) {\n window.open(link.href, '_blank', 'noopener,noreferrer');\n } else {\n console.error(\n `[os-leaderboard-casino] legal href is not a safe http(s) URL: ${JSON.stringify(link.href)}`,\n );\n }\n return;\n }\n this._activeLink = link;\n }\n\n renderLinks() {\n return html`${(this.section?.links ?? []).map(\n (link) =>\n html`<button\n class=\"legal-link\"\n type=\"button\"\n @click=${() => this._onLinkClick(link)}\n >${link.label}</button>`,\n )}`;\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n","import type { ReactiveControllerHost } from 'lit';\nimport { ContextProvider } from '@lit/context';\nimport type {\n LeaderboardData,\n LeaderboardHostProps,\n} from '@os-leaderboard-casino/types';\nimport {\n DEFAULT_LABELS,\n buildDefaultData,\n} from '@os-leaderboard-casino/constants';\nimport { LabelsEngine } from '@oddsmith/labels-engine';\nimport { ThemeEngine } from '@oddsmith/theme-engine';\nimport { resolveLeaderboardData } from '../utils/data-resolve.js';\nimport { CasinoStore, casinoStoreContext } from '@os-leaderboard-casino/store';\n\ntype CasinoBoardHost = HTMLElement & ReactiveControllerHost;\n\n/**\n * Sets up a board instance from {@link LeaderboardHostProps} (inward, one-shot):\n * - theme → {@link ThemeEngine} on the host\n * - labels → {@link LabelsEngine} on the host\n * - data → {@link CasinoStore} provided on the host via Lit context\n *\n * Layout is built-in (`DEFAULT_LAYOUT`), not host input.\n */\nexport class CasinoBootstrap {\n readonly store: CasinoStore;\n readonly theme: ThemeEngine;\n readonly labels: LabelsEngine;\n private readonly storeProvider: ContextProvider<typeof casinoStoreContext>;\n /** Frozen mix fallback so omitted clocks stay put across later load(). */\n private defaultCampaign: LeaderboardData | null = null;\n\n constructor(\n host: CasinoBoardHost,\n store: CasinoStore = new CasinoStore(),\n theme: ThemeEngine = new ThemeEngine(),\n labels: LabelsEngine = new LabelsEngine(),\n ) {\n this.theme = theme;\n this.labels = labels;\n this.store = store;\n\n this.storeProvider = new ContextProvider(host, {\n context: casinoStoreContext,\n initialValue: this.store,\n });\n }\n\n /**\n * Apply host input: theme + labels on `host`, mixed data into the store.\n * Host `.data` keys that are present replace; omitted keys keep this\n * instance's hardcoded campaign (clocks included).\n */\n load(\n host: HTMLElement,\n input: LeaderboardHostProps,\n demo = false,\n ): CasinoStore {\n this.theme.apply(host, input.theme);\n this.labels.apply(host, input.labels ?? DEFAULT_LABELS);\n this.defaultCampaign ??= buildDefaultData();\n this.store.hydrate(\n resolveLeaderboardData(\n input.data,\n '[os-leaderboard-casino]',\n this.defaultCampaign,\n ),\n demo === true,\n );\n this.storeProvider.setValue(this.store, true);\n\n return this.store;\n }\n\n /** Undo {@link load}: drop store, then unstamp labels + theme from `host`. */\n clear(host: HTMLElement): void {\n this.labels.clear(host);\n this.theme.clear(host);\n this.store.clear();\n this.defaultCampaign = null;\n this.storeProvider.setValue(this.store, true);\n }\n}\n","\nimport { html, nothing } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"shell\">${host.renderSections()}</div>\n`;\n}\n","import { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport type { PropertyValues } from 'lit';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport type { LitTemplate } from '@oddsmith/lib/lit/template.js';\nimport {\n DEFAULT_LAYOUT,\n OS_LEADERBOARD_CASINO_TAG,\n orderedLayoutSectionIds,\n} from '@os-leaderboard-casino/constants';\nimport { booleanAttributeConverter } from '@os-leaderboard-casino/utils';\nimport { CasinoBootstrap } from '@os-leaderboard-casino/bootstrap';\nimport type {\n LeaderboardDataInput,\n LeaderboardHostProps,\n LeaderboardLabels,\n LeaderboardTheme,\n SectionId,\n} from '@os-leaderboard-casino/types';\nimport type { CasinoStore } from '@os-leaderboard-casino/store';\nimport '@os-leaderboard-casino/sections';\nimport type { OsLeaderboardCasinoHost } from './os-leaderboard-casino.host.js';\nimport renderTemplate from './os-leaderboard-casino.html?lit-html';\nimport componentStyles from './os-leaderboard-casino.scss?inline';\n\n/**\n * Free-tier casino leaderboard.\n *\n * Construct the class, {@link setProps} with {@link LeaderboardHostProps},\n * then {@link mount} it into a host node. Layout is built-in\n * ({@link DEFAULT_LAYOUT}). Omit `.labels` / `.theme` / `.data` for the\n * hardcoded campaign, English labels, and glam theme.\n *\n * ```ts\n * const board = new OsLeaderboardCasino();\n * board.setProps({ labels, theme, data });\n * board.mount(document.getElementById('app')!);\n * ```\n */\n@Component({ selector: OS_LEADERBOARD_CASINO_TAG })\nexport class OsLeaderboardCasino\n extends LitElement\n implements OsLeaderboardCasinoHost\n{\n static styles = [scss(componentStyles)];\n\n @property({ attribute: false })\n labels: LeaderboardLabels | null = null;\n\n @property({ attribute: false })\n theme: Partial<LeaderboardTheme> | null = null;\n\n @property({ attribute: false })\n data: LeaderboardDataInput | null = null;\n\n /**\n * Oddsmith demo surfaces only. Rolls an expired countdown forward\n * if the campaign was still live at hydrate. Operator embeds omit this.\n */\n @property({ type: Boolean, converter: booleanAttributeConverter })\n demo = false;\n\n @state()\n private now = Date.now();\n\n private readonly bootstrap = new CasinoBootstrap(this);\n private ready = false;\n private clock?: ReturnType<typeof setInterval>;\n\n get store(): CasinoStore {\n return this.bootstrap.store;\n }\n\n /** Stamp host props. Pass the bag with shorthand: `{ labels, theme, data }`. */\n setProps(props: LeaderboardHostProps): this {\n if ('labels' in props) this.labels = props.labels ?? null;\n if ('theme' in props) this.theme = props.theme ?? null;\n if ('data' in props) this.data = props.data ?? null;\n return this;\n }\n\n /** Append this instance into `host`. Props stay on the instance. */\n mount(host: ParentNode): this {\n host.appendChild(this);\n return this;\n }\n\n /** Remove this instance from the document. */\n unmount(): this {\n this.remove();\n return this;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.load();\n this.clock = setInterval(() => {\n this.now = Date.now();\n }, 1000);\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (!this.hasUpdated) return;\n if (\n changed.has('labels') ||\n changed.has('theme') ||\n changed.has('data') ||\n changed.has('demo')\n ) {\n this.load();\n }\n }\n\n private load(): void {\n this.bootstrap.load(\n this,\n {\n ...(this.labels != null ? { labels: this.labels } : {}),\n ...(this.theme != null ? { theme: this.theme } : {}),\n ...(this.data != null ? { data: this.data } : {}),\n },\n this.demo,\n );\n this.ready = true;\n }\n\n isEnabled(id: SectionId): boolean {\n return (\n this.ready && DEFAULT_LAYOUT.sections.some((section) => section.name === id)\n );\n }\n\n renderSections(): LitTemplate {\n return html`${orderedLayoutSectionIds(DEFAULT_LAYOUT).map((id) =>\n this.renderSection(id),\n )}`;\n }\n\n private renderSection(id: SectionId): LitTemplate {\n switch (id) {\n case 'marquee':\n return this.renderMarquee();\n case 'events':\n return this.renderEvents();\n case 'hero':\n return this.renderHero();\n case 'prize':\n return this.renderPrize();\n case 'stats':\n return this.renderStats();\n case 'games':\n return this.renderGames();\n case 'climb':\n return this.renderClimb();\n case 'table':\n return this.renderTable();\n case 'footer':\n return this.renderFooter();\n case 'legals':\n return this.renderLegals();\n }\n }\n\n renderMarquee(): LitTemplate {\n if (!this.isEnabled('marquee') || !this.store.getMarqueeView()) {\n return nothing;\n }\n return html`<os-leaderboard-casino-marquee></os-leaderboard-casino-marquee>`;\n }\n\n renderEvents(): LitTemplate {\n if (!this.isEnabled('events') || !this.store.getEventsBannerView()) {\n return nothing;\n }\n return html`<os-leaderboard-casino-events></os-leaderboard-casino-events>`;\n }\n\n renderHero(): LitTemplate {\n if (!this.isEnabled('hero')) return nothing;\n return html`<os-leaderboard-casino-hero></os-leaderboard-casino-hero>`;\n }\n\n renderPrize(): LitTemplate {\n if (!this.isEnabled('prize') || !this.store.getPrizeView()) {\n return nothing;\n }\n return html`<os-leaderboard-casino-prize></os-leaderboard-casino-prize>`;\n }\n\n renderStats(): LitTemplate {\n if (!this.isEnabled('stats') || !this.store.getStatsView()) {\n return nothing;\n }\n return html`<os-leaderboard-casino-stats></os-leaderboard-casino-stats>`;\n }\n\n renderGames(): LitTemplate {\n if (!this.isEnabled('games') || !this.store.getGamesView()) {\n return nothing;\n }\n return html`<os-leaderboard-casino-games></os-leaderboard-casino-games>`;\n }\n\n renderClimb(): LitTemplate {\n if (!this.isEnabled('climb') || !this.store.getClimbView()) {\n return nothing;\n }\n return html`<os-leaderboard-casino-climb></os-leaderboard-casino-climb>`;\n }\n\n renderTable(): LitTemplate {\n if (!this.isEnabled('table') || !this.store.getTableView()) {\n return nothing;\n }\n return html`<os-leaderboard-casino-table></os-leaderboard-casino-table>`;\n }\n\n renderFooter(): LitTemplate {\n if (!this.isEnabled('footer') || !this.store.getFooterView()) {\n return nothing;\n }\n return html`<os-leaderboard-casino-footer></os-leaderboard-casino-footer>`;\n }\n\n renderLegals(): LitTemplate {\n if (!this.isEnabled('legals') || !this.store.getLegalsView()) {\n return nothing;\n }\n return html`<os-leaderboard-casino-legals></os-leaderboard-casino-legals>`;\n }\n\n protected override render() {\n if (!this.ready) return nothing;\n void this.now;\n return renderTemplate(this);\n }\n\n override disconnectedCallback(): void {\n if (this.clock) clearInterval(this.clock);\n this.bootstrap.clear(this);\n super.disconnectedCallback();\n }\n}\n"],"names":["t","e","s","o","r","n","S","c","i","h","a","l","p","d","u","f","b","y","v","m","g","x","k","unsafeCSS","createContext","consume","out","html","nothing","render","LitElement","keyed","renderTemplate","styles","__decorateClass","property","state","prizeMedalSvg","unsafeSVG","M","C","_","E","z","D","I","A","L","H","KeenSlider","rankUpSvgVb","rankDownSvgVb","rankNeutralSvgVb","unsafeHTML","query","ContextProvider"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,36,37,38,39,40,41,59,60,71]}
|