@oddsmith/ui 0.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +4 -115
- package/dist/components/os-leaderboard-casino/assets/fallback/catalog.json +9 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/catalog.json.js +13 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/catalog.json.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/config.json +8 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/defaults/glam-sections.json +564 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/fonts.json +3 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/labels.json +5 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/labels.json.js +12 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/labels.json.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/manifest.json +6 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/presets.json +38 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/presets.json.js +10 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/presets.json.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/resolved-presets.json +601 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/resolved-presets.json.js +8 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/resolved-presets.json.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/themes.json +69 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/themes.json.js +73 -0
- package/dist/components/os-leaderboard-casino/assets/fallback/themes.json.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.casino-credits.svg +7 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.casino-credits.svg.js +12 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.casino-credits.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.default.svg +7 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.default.svg.js +12 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.default.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.elite-bonus.svg +5 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.elite-bonus.svg.js +10 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.elite-bonus.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.free-spins.svg +10 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.free-spins.svg.js +15 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.free-spins.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.grand-jackpot.svg +5 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.grand-jackpot.svg.js +10 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.grand-jackpot.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.high-roller.svg +5 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.high-roller.svg.js +10 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.high-roller.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.mystery-bonus.svg +8 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.mystery-bonus.svg.js +13 -0
- package/dist/components/os-leaderboard-casino/assets/icons/prize.mystery-bonus.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/stat.clock.svg +4 -0
- package/dist/components/os-leaderboard-casino/assets/icons/stat.clock.svg.js +9 -0
- package/dist/components/os-leaderboard-casino/assets/icons/stat.clock.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/stat.gift.svg +5 -0
- package/dist/components/os-leaderboard-casino/assets/icons/stat.gift.svg.js +10 -0
- package/dist/components/os-leaderboard-casino/assets/icons/stat.gift.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/stat.users.svg +5 -0
- package/dist/components/os-leaderboard-casino/assets/icons/stat.users.svg.js +10 -0
- package/dist/components/os-leaderboard-casino/assets/icons/stat.users.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-down.svg +4 -0
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-down.svg.js +9 -0
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-down.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-neutral.svg +4 -0
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-neutral.svg.js +9 -0
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-neutral.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-up.svg +4 -0
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-up.svg.js +9 -0
- package/dist/components/os-leaderboard-casino/assets/icons/table.rank-up.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/vip.crown.svg +7 -0
- package/dist/components/os-leaderboard-casino/assets/icons/vip.crown.svg.js +12 -0
- package/dist/components/os-leaderboard-casino/assets/icons/vip.crown.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.bag.svg +5 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.bag.svg.js +10 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.bag.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.bolt.svg +4 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.bolt.svg.js +9 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.bolt.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.coin.svg +5 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.coin.svg.js +10 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.coin.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.fire.svg +4 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.fire.svg.js +9 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.fire.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.gem.svg +5 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.gem.svg.js +10 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.gem.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.trophy.svg +5 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.trophy.svg.js +10 -0
- package/dist/components/os-leaderboard-casino/assets/icons/win.trophy.svg.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/cards.png +0 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/cards.png.js +5 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/cards.png.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/chips.png +0 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/chips.png.js +5 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/chips.png.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/dice.png +0 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/dice.png.js +5 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/dice.png.js.map +1 -0
- 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 +5 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/gates-of-olympus.png.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/roulette.png +0 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/roulette.png.js +5 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/roulette.png.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/slot-machine.png +0 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/slot-machine.png.js +5 -0
- package/dist/components/os-leaderboard-casino/assets/images/games/slot-machine.png.js.map +1 -0
- package/dist/components/os-leaderboard-casino/assets/images/logo.png +0 -0
- package/dist/components/os-leaderboard-casino/constants/defaults.d.ts +8 -0
- package/dist/components/os-leaderboard-casino/constants/defaults.js +9 -0
- package/dist/components/os-leaderboard-casino/constants/defaults.js.map +1 -0
- package/dist/components/os-leaderboard-casino/constants/index.d.ts +2 -0
- package/dist/components/os-leaderboard-casino/constants/tags.d.ts +22 -0
- package/dist/components/os-leaderboard-casino/constants/tags.js +17 -0
- package/dist/components/os-leaderboard-casino/constants/tags.js.map +1 -0
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.d.ts +35 -0
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.host.d.ts +13 -0
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.html.js +20 -0
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.html.js.map +1 -0
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.js +152 -0
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.js.map +1 -0
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/container/os-leaderboard-casino.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/index.d.ts +36 -0
- package/dist/components/os-leaderboard-casino/index.js +39 -0
- package/dist/components/os-leaderboard-casino/index.js.map +1 -0
- package/dist/components/os-leaderboard-casino/integration/assemble-assets.d.ts +21 -0
- package/dist/components/os-leaderboard-casino/integration/assemble-assets.js +48 -0
- package/dist/components/os-leaderboard-casino/integration/assemble-assets.js.map +1 -0
- package/dist/components/os-leaderboard-casino/integration/assets-context.d.ts +26 -0
- package/dist/components/os-leaderboard-casino/integration/assets-context.js +64 -0
- package/dist/components/os-leaderboard-casino/integration/assets-context.js.map +1 -0
- package/dist/components/os-leaderboard-casino/integration/defaults-glam.d.ts +14 -0
- package/dist/components/os-leaderboard-casino/integration/defaults-new-money.d.ts +3 -0
- package/dist/components/os-leaderboard-casino/integration/index.d.ts +5 -0
- package/dist/components/os-leaderboard-casino/integration/labels.d.ts +1 -0
- package/dist/components/os-leaderboard-casino/integration/load-assets.d.ts +9 -0
- package/dist/components/os-leaderboard-casino/integration/load-assets.js +22 -0
- package/dist/components/os-leaderboard-casino/integration/load-assets.js.map +1 -0
- package/dist/components/os-leaderboard-casino/integration/presets.d.ts +1 -0
- package/dist/components/os-leaderboard-casino/integration/resolve-input.d.ts +20 -0
- package/dist/components/os-leaderboard-casino/integration/resolve-input.js +99 -0
- package/dist/components/os-leaderboard-casino/integration/resolve-input.js.map +1 -0
- package/dist/components/os-leaderboard-casino/integration/themes.d.ts +1 -0
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.d.ts +19 -0
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.host.d.ts +15 -0
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.html.js +46 -0
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.html.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.js +74 -0
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.d.ts +5 -0
- package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.js +116 -0
- package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.d.ts +16 -0
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.host.d.ts +8 -0
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.js +90 -0
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.d.ts +10 -0
- package/{src/components/sf-leaderboard/sections/footer-section/footer-section.host.ts → dist/components/os-leaderboard-casino/sections/footer-section/footer-section.host.d.ts} +1 -1
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.html.js +18 -0
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.html.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.js +39 -0
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/footer-section/footer-section.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/games-section/components/game-images.d.ts +1 -0
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.d.ts +20 -0
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.host.d.ts +7 -0
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.html.js +15 -0
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.html.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.js +86 -0
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/games-section/games-section.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/header-section/header-section.d.ts +12 -0
- package/dist/components/os-leaderboard-casino/sections/header-section/header-section.host.d.ts +8 -0
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.d.ts +37 -0
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.host.d.ts +20 -0
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.html.js +34 -0
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.html.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.js +160 -0
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/hero-section/hero-section.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.d.ts +18 -0
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.host.d.ts +8 -0
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.html.js +33 -0
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.html.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.js +74 -0
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/live-feed-section/live-feed-section.d.ts +13 -0
- package/dist/components/os-leaderboard-casino/sections/live-feed-section/live-feed-section.host.d.ts +8 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.d.ts +3 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.js +8 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.d.ts +14 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.js +57 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-item.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.d.ts +42 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.host.d.ts +8 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html.js +17 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.js +287 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.d.ts +6 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.js +16 -0
- package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.d.ts +16 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.js +71 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.d.ts +23 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.host.d.ts +11 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.html.js +18 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.html.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.js +135 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-band/stat-band.d.ts +17 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-card/stat-card.d.ts +15 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-chip/stat-chip.d.ts +17 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-gauge/stat-gauge.d.ts +14 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.d.ts +5 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.js +11 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-meter/stat-meter.d.ts +17 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.d.ts +17 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.js +61 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-rail/stat-rail.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.d.ts +16 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.host.d.ts +13 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.html.js +34 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.html.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.js +69 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/stats-section/stats-section.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.d.ts +31 -0
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.host.d.ts +15 -0
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.html.js +38 -0
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.html.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.js +183 -0
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.js.map +1 -0
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.scss.js +5 -0
- package/dist/components/os-leaderboard-casino/sections/table-section/table-section.scss.js.map +1 -0
- package/dist/components/os-leaderboard-casino/services/adapter.service.d.ts +11 -0
- package/dist/components/os-leaderboard-casino/services/adapter.service.js +49 -0
- package/dist/components/os-leaderboard-casino/services/adapter.service.js.map +1 -0
- package/dist/components/os-leaderboard-casino/services/icon.service.d.ts +28 -0
- package/dist/components/os-leaderboard-casino/services/icon.service.js +192 -0
- package/dist/components/os-leaderboard-casino/services/icon.service.js.map +1 -0
- package/dist/components/os-leaderboard-casino/services/index.d.ts +2 -0
- package/dist/components/os-leaderboard-casino/theme/index.d.ts +3 -0
- package/dist/components/os-leaderboard-casino/theme/prize-icons.d.ts +1 -0
- package/dist/components/os-leaderboard-casino/theme/prize-resolve.d.ts +5 -0
- package/dist/components/os-leaderboard-casino/theme/prize-resolve.js +11 -0
- package/dist/components/os-leaderboard-casino/theme/prize-resolve.js.map +1 -0
- package/dist/components/os-leaderboard-casino/theme/styles.d.ts +9 -0
- package/dist/components/os-leaderboard-casino/theme/styles.js +179 -0
- package/dist/components/os-leaderboard-casino/theme/styles.js.map +1 -0
- package/dist/components/os-leaderboard-casino/theme/vip-icons.d.ts +2 -0
- package/dist/components/os-leaderboard-casino/theme/vip-icons.js +6 -0
- package/dist/components/os-leaderboard-casino/theme/vip-icons.js.map +1 -0
- package/dist/components/os-leaderboard-casino/theme/vip-mark.d.ts +7 -0
- package/dist/components/os-leaderboard-casino/theme/vip-mark.js +20 -0
- package/dist/components/os-leaderboard-casino/theme/vip-mark.js.map +1 -0
- package/dist/components/os-leaderboard-casino/types/assets.d.ts +40 -0
- package/dist/components/os-leaderboard-casino/types/data.d.ts +106 -0
- package/dist/components/os-leaderboard-casino/types/data.js +7 -0
- package/dist/components/os-leaderboard-casino/types/data.js.map +1 -0
- package/dist/components/os-leaderboard-casino/types/events.d.ts +18 -0
- package/dist/components/os-leaderboard-casino/types/events.js +8 -0
- package/dist/components/os-leaderboard-casino/types/events.js.map +1 -0
- package/dist/components/os-leaderboard-casino/types/icons.d.ts +18 -0
- package/dist/components/os-leaderboard-casino/types/input.d.ts +73 -0
- package/dist/components/os-leaderboard-casino/types/ledger.d.ts +67 -0
- package/dist/components/os-leaderboard-casino/types/sections.d.ts +200 -0
- package/dist/components/os-leaderboard-casino/types/state.d.ts +69 -0
- package/dist/components/os-leaderboard-casino/types/state.js +12 -0
- package/dist/components/os-leaderboard-casino/types/state.js.map +1 -0
- package/dist/shared/lib/lit/component.d.ts +5 -0
- package/dist/shared/lib/lit/component.js +8 -0
- package/dist/shared/lib/lit/component.js.map +1 -0
- package/dist/shared/lib/lit/safe-custom-element.d.ts +5 -0
- package/dist/shared/lib/lit/safe-custom-element.js +7 -0
- package/dist/shared/lib/lit/safe-custom-element.js.map +1 -0
- package/dist/shared/lib/lit/scss.d.ts +3 -0
- package/dist/shared/lib/lit/scss.js +8 -0
- package/dist/shared/lib/lit/scss.js.map +1 -0
- package/dist/shared/lib/lit/template.d.ts +3 -0
- package/dist/shared/vendor/keen-slider-keen-slider.es.js +538 -0
- package/dist/shared/vendor/keen-slider-keen-slider.es.js.map +1 -0
- package/package.json +37 -39
- package/.eleventy.cjs +0 -14
- package/custom-elements.json +0 -1539
- package/docs/_README/index.html +0 -4
- package/docs/api/index.html +0 -2100
- package/docs/components.bundle.js +0 -1669
- package/docs/components.bundle.js.map +0 -1
- package/docs/docs.css +0 -162
- package/docs/examples/index.html +0 -56
- package/docs/index.html +0 -53
- package/docs/install/index.html +0 -45
- package/docs/prism-okaidia.css +0 -123
- package/docs-src/.nojekyll +0 -0
- package/docs-src/_README.md +0 -7
- package/docs-src/_data/api.11tydata.js +0 -8
- package/docs-src/_includes/example.11ty.js +0 -35
- package/docs-src/_includes/footer.11ty.js +0 -6
- package/docs-src/_includes/header.11ty.js +0 -7
- package/docs-src/_includes/nav.11ty.js +0 -11
- package/docs-src/_includes/page.11ty.js +0 -32
- package/docs-src/_includes/relative-path.cjs +0 -9
- package/docs-src/api.11ty.js +0 -85
- package/docs-src/bundle.ts +0 -9
- package/docs-src/docs.css +0 -162
- package/docs-src/examples/index.md +0 -15
- package/docs-src/index.md +0 -39
- package/docs-src/install.md +0 -28
- package/docs-src/package.json +0 -3
- package/index.html +0 -19
- package/karma.conf.cjs +0 -24
- package/main.css +0 -210
- package/main.ts +0 -124
- package/previews/casino.ts +0 -12
- package/previews/catalog.ts +0 -94
- package/previews/leaderboard-v1.ts +0 -12
- package/previews/leaderboard-v2.ts +0 -17
- package/previews/sample-data.ts +0 -101
- package/previews/sf-leaderboard.ts +0 -100
- package/previews/sf-live-feed.ts +0 -15
- package/previews/streaks.ts +0 -40
- package/previews/types.ts +0 -18
- package/src/components/README.md +0 -16
- package/src/components/casino-leaderboard/casino-leaderboard.html +0 -80
- package/src/components/casino-leaderboard/casino-leaderboard.scss +0 -585
- package/src/components/casino-leaderboard/casino-leaderboard.ts +0 -136
- package/src/components/casino-leaderboard/data.ts +0 -111
- package/src/components/casino-leaderboard/index.ts +0 -5
- package/src/components/casino-leaderboard/todo.txt +0 -2
- package/src/components/casino-leaderboard/types.ts +0 -19
- package/src/components/leaderboard/components/leaderboard.ts +0 -373
- package/src/components/leaderboard/components/player-card.ts +0 -342
- package/src/components/leaderboard/components/ui.ts +0 -452
- package/src/components/leaderboard/data.ts +0 -152
- package/src/components/leaderboard/index.ts +0 -2
- package/src/components/leaderboard/main.ts +0 -42
- package/src/components/leaderboard/styles.ts +0 -67
- package/src/components/leaderboard/types.ts +0 -28
- package/src/components/leaderboard-v2/components/sf-leaderboard-player.ts +0 -451
- package/src/components/leaderboard-v2/components/sf-leaderboard-ui.ts +0 -512
- package/src/components/leaderboard-v2/components/sf-leaderboard.ts +0 -205
- package/src/components/leaderboard-v2/constants.ts +0 -16
- package/src/components/leaderboard-v2/demo/sample-data.ts +0 -152
- package/src/components/leaderboard-v2/events.ts +0 -13
- package/src/components/leaderboard-v2/icons.ts +0 -22
- package/src/components/leaderboard-v2/index.ts +0 -23
- package/src/components/leaderboard-v2/sf-leaderboard.html +0 -1
- package/src/components/leaderboard-v2/sf-leaderboard.scss +0 -382
- package/src/components/leaderboard-v2/tokens.ts +0 -35
- package/src/components/leaderboard-v2/types.ts +0 -30
- package/src/components/sf-leaderboard/index.ts +0 -77
- package/src/components/sf-leaderboard/sections/footer-section/footer-section.html +0 -3
- package/src/components/sf-leaderboard/sections/footer-section/footer-section.scss +0 -18
- package/src/components/sf-leaderboard/sections/footer-section/footer-section.ts +0 -22
- package/src/components/sf-leaderboard/sections/header-section/header-section.host.ts +0 -14
- package/src/components/sf-leaderboard/sections/header-section/header-section.html +0 -27
- package/src/components/sf-leaderboard/sections/header-section/header-section.scss +0 -189
- package/src/components/sf-leaderboard/sections/header-section/header-section.ts +0 -70
- package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.host.ts +0 -22
- package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.html +0 -38
- package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.scss +0 -99
- package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.ts +0 -121
- package/src/components/sf-leaderboard/sections/stats-section/stats-section.host.ts +0 -8
- package/src/components/sf-leaderboard/sections/stats-section/stats-section.html +0 -6
- package/src/components/sf-leaderboard/sections/stats-section/stats-section.scss +0 -44
- package/src/components/sf-leaderboard/sections/stats-section/stats-section.ts +0 -41
- package/src/components/sf-leaderboard/sections/table-section/table-section.host.ts +0 -17
- package/src/components/sf-leaderboard/sections/table-section/table-section.html +0 -19
- package/src/components/sf-leaderboard/sections/table-section/table-section.scss +0 -37
- package/src/components/sf-leaderboard/sections/table-section/table-section.ts +0 -108
- package/src/components/sf-leaderboard/services/index.ts +0 -22
- package/src/components/sf-leaderboard/services/sf-leaderboard-data.service.ts +0 -54
- package/src/components/sf-leaderboard/services/sf-leaderboard.state.ts +0 -160
- package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.host.ts +0 -7
- package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.html +0 -10
- package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.scss +0 -180
- package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.ts +0 -88
- package/src/components/sf-leaderboard/shared/components/filters/filters.host.ts +0 -12
- package/src/components/sf-leaderboard/shared/components/filters/filters.html +0 -22
- package/src/components/sf-leaderboard/shared/components/filters/filters.scss +0 -122
- package/src/components/sf-leaderboard/shared/components/filters/filters.ts +0 -75
- package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.host.ts +0 -9
- package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.html +0 -5
- package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.scss +0 -81
- package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.ts +0 -34
- package/src/components/sf-leaderboard/shared/components/podium/map-players.ts +0 -24
- package/src/components/sf-leaderboard/shared/components/podium/podium.host.ts +0 -10
- package/src/components/sf-leaderboard/shared/components/podium/podium.html +0 -53
- package/src/components/sf-leaderboard/shared/components/podium/podium.scss +0 -580
- package/src/components/sf-leaderboard/shared/components/podium/podium.ts +0 -49
- package/src/components/sf-leaderboard/shared/components/podium/podium.types.ts +0 -9
- package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.host.ts +0 -11
- package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.html +0 -9
- package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.scss +0 -98
- package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.ts +0 -63
- package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.host.ts +0 -9
- package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.html +0 -15
- package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.scss +0 -210
- package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.ts +0 -36
- package/src/components/sf-leaderboard/shared/components/table/table.host.ts +0 -5
- package/src/components/sf-leaderboard/shared/components/table/table.html +0 -11
- package/src/components/sf-leaderboard/shared/components/table/table.scss +0 -212
- package/src/components/sf-leaderboard/shared/components/table/table.ts +0 -111
- package/src/components/sf-leaderboard/shared/constants/defaults.ts +0 -7
- package/src/components/sf-leaderboard/shared/constants/filters.ts +0 -16
- package/src/components/sf-leaderboard/shared/constants/index.ts +0 -5
- package/src/components/sf-leaderboard/shared/constants/player-stats.ts +0 -3
- package/src/components/sf-leaderboard/shared/constants/stats-overview.ts +0 -38
- package/src/components/sf-leaderboard/shared/constants/tags.ts +0 -16
- package/src/components/sf-leaderboard/shared/styles/_section.scss +0 -35
- package/src/components/sf-leaderboard/shared/types/data.ts +0 -29
- package/src/components/sf-leaderboard/shared/types/events.ts +0 -30
- package/src/components/sf-leaderboard/shared/types/player-stats.ts +0 -3
- package/src/components/sf-leaderboard/shared/types/sections.ts +0 -100
- package/src/components/sf-leaderboard/shared/utils/utils.ts +0 -17
- package/src/components/sf-leaderboard/theme/THEMING.md +0 -54
- package/src/components/sf-leaderboard/theme/context.ts +0 -16
- package/src/components/sf-leaderboard/theme/default-theme.ts +0 -4
- package/src/components/sf-leaderboard/theme/hex-to-rgb.ts +0 -25
- package/src/components/sf-leaderboard/theme/index.ts +0 -18
- package/src/components/sf-leaderboard/theme/inject-theme.ts +0 -39
- package/src/components/sf-leaderboard/theme/load-theme.ts +0 -26
- package/src/components/sf-leaderboard/theme/merge-theme.ts +0 -59
- package/src/components/sf-leaderboard/theme/scss/_colors.scss +0 -101
- package/src/components/sf-leaderboard/theme/scss/shared.scss +0 -123
- package/src/components/sf-leaderboard/theme/styles.ts +0 -6
- package/src/components/sf-leaderboard/theme/theme-to-css-vars.ts +0 -99
- package/src/components/sf-leaderboard/theme/themes/fallback.json +0 -62
- package/src/components/sf-leaderboard/theme/themes/red.json +0 -62
- package/src/components/sf-leaderboard/theme/types.ts +0 -71
- package/src/components/sf-live-feed/components/avatar/avatar.host.ts +0 -5
- package/src/components/sf-live-feed/components/avatar/avatar.html +0 -3
- package/src/components/sf-live-feed/components/avatar/avatar.scss +0 -24
- package/src/components/sf-live-feed/components/avatar/avatar.ts +0 -27
- package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.host.ts +0 -8
- package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.html +0 -10
- package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.scss +0 -177
- package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.ts +0 -65
- package/src/components/sf-live-feed/constants.ts +0 -4
- package/src/components/sf-live-feed/demo/sample-data.ts +0 -34
- package/src/components/sf-live-feed/index.ts +0 -19
- package/src/components/sf-live-feed/styles/theme.scss +0 -19
- package/src/components/sf-live-feed/styles/theme.ts +0 -5
- package/src/components/sf-live-feed/types.ts +0 -19
- package/src/components/sf-live-feed/utils.ts +0 -17
- package/src/components/streaks/constants.ts +0 -17
- package/src/components/streaks/demo/sample-steps.ts +0 -10
- package/src/components/streaks/events.ts +0 -8
- package/src/components/streaks/index.ts +0 -16
- package/src/components/streaks/sf-streaks.html +0 -26
- package/src/components/streaks/sf-streaks.scss +0 -351
- package/src/components/streaks/sf-streaks.ts +0 -235
- package/src/components/streaks/types.ts +0 -7
- package/src/lib/lit/component.ts +0 -10
- package/src/lib/lit/safe-custom-element.ts +0 -12
- package/src/lib/lit/scss.ts +0 -6
- package/src/vite-env.d.ts +0 -18
- package/styles/global.css +0 -125
- package/todo.txt +0 -54
- package/tsconfig.json +0 -31
- package/vite.config.ts +0 -56
- package/vite.docs.config.ts +0 -33
- package/vite.lit-html-plugin.ts +0 -43
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { getBundleDefaultPresetId as c, getOsLeaderboardCasinoPreset as a, resolvePresetState as f, getBundleLabels as p, getThemeVars as b, getTheme as P, resolveAssetsBundle as h } from "./assets-context.js";
|
|
2
|
+
import { LEADERBOARD_CASINO_PRESET_CATALOG as L } from "./assets-context.js";
|
|
3
|
+
function g(e, n, r, s) {
|
|
4
|
+
const t = e.branding?.themeId;
|
|
5
|
+
return !t || P(t, s).appearance !== n ? r : t;
|
|
6
|
+
}
|
|
7
|
+
function l(e) {
|
|
8
|
+
return {
|
|
9
|
+
username: e.username,
|
|
10
|
+
rank: e.rank,
|
|
11
|
+
points: e.points ?? e.winnings ?? 0,
|
|
12
|
+
totalBet: e.winnings,
|
|
13
|
+
prize: null,
|
|
14
|
+
splitCount: 1,
|
|
15
|
+
you: e.isCurrentUser ?? !1
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function d(e) {
|
|
19
|
+
const n = e.winnings ?? e.points ?? 0;
|
|
20
|
+
return {
|
|
21
|
+
id: e.id ?? `player-${e.rank}`,
|
|
22
|
+
username: e.username,
|
|
23
|
+
rank: e.rank,
|
|
24
|
+
totalWinnings: n,
|
|
25
|
+
points: e.points ?? n,
|
|
26
|
+
winRate: 52,
|
|
27
|
+
gamesPlayed: 120,
|
|
28
|
+
streak: 2,
|
|
29
|
+
level: 12,
|
|
30
|
+
badges: []
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function m(e, n) {
|
|
34
|
+
n && (e.sections.hero && (e.sections.hero = {
|
|
35
|
+
...e.sections.hero,
|
|
36
|
+
...n.title != null ? { title: n.title } : {},
|
|
37
|
+
...n.description != null ? { description: n.description } : {},
|
|
38
|
+
...n.endAt != null ? { endTs: n.endAt } : {},
|
|
39
|
+
...n.prizePool?.value != null ? { prizePoolValue: n.prizePool.value } : {},
|
|
40
|
+
...n.prizePool?.currency != null ? { prizePoolCurrency: n.prizePool.currency } : {},
|
|
41
|
+
...n.finished != null ? { status: n.finished ? "completed" : "active" } : {}
|
|
42
|
+
}), e.sections.stats && n.participantCount != null && (e.sections.stats = {
|
|
43
|
+
...e.sections.stats,
|
|
44
|
+
totalParticipants: n.participantCount
|
|
45
|
+
}), e.sections.footer && n.footerText != null && (e.sections.footer = {
|
|
46
|
+
...e.sections.footer,
|
|
47
|
+
text: n.footerText
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
function C(e, n) {
|
|
51
|
+
if (!n?.length || !e.sections.table) return;
|
|
52
|
+
const r = [...n].sort((t, o) => t.rank - o.rank), s = r.find((t) => t.isCurrentUser) ?? r.find((t) => t.username.toLowerCase() === "you");
|
|
53
|
+
if (e.config.appearance === "glam" && e.sections.table.mode === "preview") {
|
|
54
|
+
e.sections.table = {
|
|
55
|
+
...e.sections.table,
|
|
56
|
+
topPlayers: r.slice(0, 10).map(l),
|
|
57
|
+
currentUser: s ? l(s) : e.sections.table.currentUser
|
|
58
|
+
};
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (e.sections.table.mode === "ledger") {
|
|
62
|
+
const o = r.map(d).slice(0, 8), i = s && !o.some((u) => u.id === (s.id ?? `player-${s.rank}`)) ? d(s) : void 0;
|
|
63
|
+
e.sections.table = {
|
|
64
|
+
...e.sections.table,
|
|
65
|
+
players: o,
|
|
66
|
+
currentUser: i
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function v(e, n) {
|
|
71
|
+
const r = h(n), s = e.preset ?? c(r), t = a(s, r);
|
|
72
|
+
if (!t)
|
|
73
|
+
throw new Error(
|
|
74
|
+
`Unknown leaderboard preset "${s}". Check assets catalog.`
|
|
75
|
+
);
|
|
76
|
+
const o = g(
|
|
77
|
+
e,
|
|
78
|
+
t.appearance,
|
|
79
|
+
t.themeId,
|
|
80
|
+
r
|
|
81
|
+
), i = f(s, r);
|
|
82
|
+
return i.config.themeId = o, i.config.labels = {
|
|
83
|
+
...p(r),
|
|
84
|
+
...t.config.labels,
|
|
85
|
+
...e.branding?.labels
|
|
86
|
+
}, i.config.themeVars = {
|
|
87
|
+
...b(o, r),
|
|
88
|
+
...e.branding?.themeVars
|
|
89
|
+
}, m(i, e.campaign), C(i, e.players), i;
|
|
90
|
+
}
|
|
91
|
+
function k(e, n, r) {
|
|
92
|
+
r !== void 0 && (e.assets = r), e.input = n, e.uuid = n.campaign?.uuid ?? "", e.finished = n.campaign?.finished ?? !1, e.state = v(n, e.assets);
|
|
93
|
+
}
|
|
94
|
+
export {
|
|
95
|
+
L as LEADERBOARD_CASINO_PRESET_CATALOG,
|
|
96
|
+
k as applyLeaderboardCasinoInput,
|
|
97
|
+
v as resolveLeaderboardCasinoInput
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=resolve-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-input.js","sources":["../../../../src/components/os-leaderboard-casino/integration/resolve-input.ts"],"sourcesContent":["import type { Player } from '../types/ledger.js';\nimport type { UserRank } from '@os-leaderboard-casino/types/data.js';\nimport type { LeaderboardCasinoAssetsBundle } from '../types/assets.js';\nimport type {\n LeaderboardCasinoCampaign,\n LeaderboardCasinoInput,\n LeaderboardCasinoPlayer,\n} from '../types/input.js';\nimport type { OsLeaderboardCasinoState } from '../types/state.js';\nimport {\n getBundleLabels,\n getBundleDefaultPresetId,\n getOsLeaderboardCasinoPreset,\n resolveAssetsBundle,\n resolvePresetState,\n getTheme,\n getThemeVars,\n type OsLeaderboardCasinoThemeId,\n LEADERBOARD_CASINO_PRESET_CATALOG,\n} from './assets-context.js';\n\nexport { LEADERBOARD_CASINO_PRESET_CATALOG };\n\nfunction resolveThemeId(\n input: LeaderboardCasinoInput,\n appearance: OsLeaderboardCasinoState['config']['appearance'],\n fallback: string,\n bundle: LeaderboardCasinoAssetsBundle,\n): OsLeaderboardCasinoThemeId {\n const requested = input.branding?.themeId;\n if (!requested) return fallback as OsLeaderboardCasinoThemeId;\n const theme = getTheme(requested as OsLeaderboardCasinoThemeId, bundle);\n if (theme.appearance !== appearance)\n return fallback as OsLeaderboardCasinoThemeId;\n return requested as OsLeaderboardCasinoThemeId;\n}\n\nfunction toPreviewPlayer(player: LeaderboardCasinoPlayer): UserRank {\n return {\n username: player.username,\n rank: player.rank,\n points: player.points ?? player.winnings ?? 0,\n totalBet: player.winnings,\n prize: null,\n splitCount: 1,\n you: player.isCurrentUser ?? false,\n };\n}\n\nfunction toLedgerPlayer(player: LeaderboardCasinoPlayer): Player {\n const winnings = player.winnings ?? player.points ?? 0;\n return {\n id: player.id ?? `player-${player.rank}`,\n username: player.username,\n rank: player.rank,\n totalWinnings: winnings,\n points: player.points ?? winnings,\n winRate: 52,\n gamesPlayed: 120,\n streak: 2,\n level: 12,\n badges: [],\n };\n}\n\nfunction applyCampaign(\n state: OsLeaderboardCasinoState,\n campaign: LeaderboardCasinoCampaign | undefined,\n): void {\n if (!campaign) return;\n\n if (state.sections.hero) {\n state.sections.hero = {\n ...state.sections.hero,\n ...(campaign.title != null ? { title: campaign.title } : {}),\n ...(campaign.description != null\n ? { description: campaign.description }\n : {}),\n ...(campaign.endAt != null ? { endTs: campaign.endAt } : {}),\n ...(campaign.prizePool?.value != null\n ? { prizePoolValue: campaign.prizePool.value }\n : {}),\n ...(campaign.prizePool?.currency != null\n ? { prizePoolCurrency: campaign.prizePool.currency }\n : {}),\n ...(campaign.finished != null\n ? { status: campaign.finished ? 'completed' : 'active' }\n : {}),\n };\n }\n\n if (state.sections.stats && campaign.participantCount != null) {\n state.sections.stats = {\n ...state.sections.stats,\n totalParticipants: campaign.participantCount,\n };\n }\n\n if (state.sections.footer && campaign.footerText != null) {\n state.sections.footer = {\n ...state.sections.footer,\n text: campaign.footerText,\n };\n }\n}\n\nfunction applyPlayers(\n state: OsLeaderboardCasinoState,\n players: LeaderboardCasinoPlayer[] | undefined,\n): void {\n if (!players?.length || !state.sections.table) return;\n\n const sorted = [...players].sort((a, b) => a.rank - b.rank);\n const current =\n sorted.find((p) => p.isCurrentUser) ??\n sorted.find((p) => p.username.toLowerCase() === 'you');\n\n if (\n state.config.appearance === 'glam' &&\n state.sections.table.mode === 'preview'\n ) {\n state.sections.table = {\n ...state.sections.table,\n topPlayers: sorted.slice(0, 10).map(toPreviewPlayer),\n currentUser: current\n ? toPreviewPlayer(current)\n : state.sections.table.currentUser,\n };\n return;\n }\n\n if (state.sections.table.mode === 'ledger') {\n const ledger = sorted.map(toLedgerPlayer);\n const top = ledger.slice(0, 8);\n const pinned =\n current &&\n !top.some((p) => p.id === (current.id ?? `player-${current.rank}`))\n ? toLedgerPlayer(current)\n : undefined;\n\n state.sections.table = {\n ...state.sections.table,\n players: top,\n currentUser: pinned,\n };\n }\n}\n\n/**\n * Resolve integration input into render state using the provided assets bundle.\n * Falls back to bundled `assets/fallback/fallback.json` when `assets` is omitted.\n */\nexport function resolveLeaderboardCasinoInput(\n input: LeaderboardCasinoInput,\n assets?: LeaderboardCasinoAssetsBundle | null,\n): OsLeaderboardCasinoState {\n const bundle = resolveAssetsBundle(assets);\n const presetId = input.preset ?? getBundleDefaultPresetId(bundle);\n const preset = getOsLeaderboardCasinoPreset(presetId, bundle);\n if (!preset) {\n throw new Error(\n `Unknown leaderboard preset \"${presetId}\". Check assets catalog.`,\n );\n }\n\n const themeId = resolveThemeId(\n input,\n preset.appearance,\n preset.themeId,\n bundle,\n );\n const state = resolvePresetState(presetId, bundle);\n\n state.config.themeId = themeId;\n state.config.labels = {\n ...getBundleLabels(bundle),\n ...preset.config.labels,\n ...input.branding?.labels,\n };\n\n state.config.themeVars = {\n ...getThemeVars(themeId, bundle),\n ...input.branding?.themeVars,\n };\n\n applyCampaign(state, input.campaign);\n applyPlayers(state, input.players);\n\n return state;\n}\n\nexport type LeaderboardCasinoHost = HTMLElement & {\n state: OsLeaderboardCasinoState;\n uuid?: string;\n finished?: boolean;\n input?: LeaderboardCasinoInput | null;\n assets?: LeaderboardCasinoAssetsBundle | null;\n assetsBaseUrl?: string;\n};\n\n/** Apply input (+ optional assets bundle) to a mounted element. */\nexport function applyLeaderboardCasinoInput(\n host: LeaderboardCasinoHost,\n input: LeaderboardCasinoInput,\n assets?: LeaderboardCasinoAssetsBundle | null,\n): void {\n if (assets !== undefined) {\n host.assets = assets;\n }\n host.input = input;\n host.uuid = input.campaign?.uuid ?? '';\n host.finished = input.campaign?.finished ?? false;\n host.state = resolveLeaderboardCasinoInput(input, host.assets);\n}\n"],"names":["resolveThemeId","input","appearance","fallback","bundle","requested","getTheme","toPreviewPlayer","player","toLedgerPlayer","winnings","applyCampaign","state","campaign","applyPlayers","players","sorted","a","b","current","p","top","pinned","resolveLeaderboardCasinoInput","assets","resolveAssetsBundle","presetId","getBundleDefaultPresetId","preset","getOsLeaderboardCasinoPreset","themeId","resolvePresetState","getBundleLabels","getThemeVars","applyLeaderboardCasinoInput","host"],"mappings":";;AAuBA,SAASA,EACPC,GACAC,GACAC,GACAC,GAC4B;AAC5B,QAAMC,IAAYJ,EAAM,UAAU;AAGlC,SAFI,CAACI,KACSC,EAASD,GAAyCD,CAAM,EAC5D,eAAeF,IAChBC,IACFE;AACT;AAEA,SAASE,EAAgBC,GAA2C;AAClE,SAAO;AAAA,IACL,UAAUA,EAAO;AAAA,IACjB,MAAMA,EAAO;AAAA,IACb,QAAQA,EAAO,UAAUA,EAAO,YAAY;AAAA,IAC5C,UAAUA,EAAO;AAAA,IACjB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,KAAKA,EAAO,iBAAiB;AAAA,EAAA;AAEjC;AAEA,SAASC,EAAeD,GAAyC;AAC/D,QAAME,IAAWF,EAAO,YAAYA,EAAO,UAAU;AACrD,SAAO;AAAA,IACL,IAAIA,EAAO,MAAM,UAAUA,EAAO,IAAI;AAAA,IACtC,UAAUA,EAAO;AAAA,IACjB,MAAMA,EAAO;AAAA,IACb,eAAeE;AAAA,IACf,QAAQF,EAAO,UAAUE;AAAA,IACzB,SAAS;AAAA,IACT,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ,CAAA;AAAA,EAAC;AAEb;AAEA,SAASC,EACPC,GACAC,GACM;AACN,EAAKA,MAEDD,EAAM,SAAS,SACjBA,EAAM,SAAS,OAAO;AAAA,IACpB,GAAGA,EAAM,SAAS;AAAA,IAClB,GAAIC,EAAS,SAAS,OAAO,EAAE,OAAOA,EAAS,MAAA,IAAU,CAAA;AAAA,IACzD,GAAIA,EAAS,eAAe,OACxB,EAAE,aAAaA,EAAS,YAAA,IACxB,CAAA;AAAA,IACJ,GAAIA,EAAS,SAAS,OAAO,EAAE,OAAOA,EAAS,MAAA,IAAU,CAAA;AAAA,IACzD,GAAIA,EAAS,WAAW,SAAS,OAC7B,EAAE,gBAAgBA,EAAS,UAAU,MAAA,IACrC,CAAA;AAAA,IACJ,GAAIA,EAAS,WAAW,YAAY,OAChC,EAAE,mBAAmBA,EAAS,UAAU,SAAA,IACxC,CAAA;AAAA,IACJ,GAAIA,EAAS,YAAY,OACrB,EAAE,QAAQA,EAAS,WAAW,cAAc,aAC5C,CAAA;AAAA,EAAC,IAILD,EAAM,SAAS,SAASC,EAAS,oBAAoB,SACvDD,EAAM,SAAS,QAAQ;AAAA,IACrB,GAAGA,EAAM,SAAS;AAAA,IAClB,mBAAmBC,EAAS;AAAA,EAAA,IAI5BD,EAAM,SAAS,UAAUC,EAAS,cAAc,SAClDD,EAAM,SAAS,SAAS;AAAA,IACtB,GAAGA,EAAM,SAAS;AAAA,IAClB,MAAMC,EAAS;AAAA,EAAA;AAGrB;AAEA,SAASC,EACPF,GACAG,GACM;AACN,MAAI,CAACA,GAAS,UAAU,CAACH,EAAM,SAAS,MAAO;AAE/C,QAAMI,IAAS,CAAC,GAAGD,CAAO,EAAE,KAAK,CAACE,GAAGC,MAAMD,EAAE,OAAOC,EAAE,IAAI,GACpDC,IACJH,EAAO,KAAK,CAACI,MAAMA,EAAE,aAAa,KAClCJ,EAAO,KAAK,CAACI,MAAMA,EAAE,SAAS,YAAA,MAAkB,KAAK;AAEvD,MACER,EAAM,OAAO,eAAe,UAC5BA,EAAM,SAAS,MAAM,SAAS,WAC9B;AACA,IAAAA,EAAM,SAAS,QAAQ;AAAA,MACrB,GAAGA,EAAM,SAAS;AAAA,MAClB,YAAYI,EAAO,MAAM,GAAG,EAAE,EAAE,IAAIT,CAAe;AAAA,MACnD,aAAaY,IACTZ,EAAgBY,CAAO,IACvBP,EAAM,SAAS,MAAM;AAAA,IAAA;AAE3B;AAAA,EACF;AAEA,MAAIA,EAAM,SAAS,MAAM,SAAS,UAAU;AAE1C,UAAMS,IADSL,EAAO,IAAIP,CAAc,EACrB,MAAM,GAAG,CAAC,GACvBa,IACJH,KACA,CAACE,EAAI,KAAK,CAACD,MAAMA,EAAE,QAAQD,EAAQ,MAAM,UAAUA,EAAQ,IAAI,GAAG,IAC9DV,EAAeU,CAAO,IACtB;AAEN,IAAAP,EAAM,SAAS,QAAQ;AAAA,MACrB,GAAGA,EAAM,SAAS;AAAA,MAClB,SAASS;AAAA,MACT,aAAaC;AAAA,IAAA;AAAA,EAEjB;AACF;AAMO,SAASC,EACdtB,GACAuB,GAC0B;AAC1B,QAAMpB,IAASqB,EAAoBD,CAAM,GACnCE,IAAWzB,EAAM,UAAU0B,EAAyBvB,CAAM,GAC1DwB,IAASC,EAA6BH,GAAUtB,CAAM;AAC5D,MAAI,CAACwB;AACH,UAAM,IAAI;AAAA,MACR,+BAA+BF,CAAQ;AAAA,IAAA;AAI3C,QAAMI,IAAU9B;AAAA,IACdC;AAAA,IACA2B,EAAO;AAAA,IACPA,EAAO;AAAA,IACPxB;AAAA,EAAA,GAEIQ,IAAQmB,EAAmBL,GAAUtB,CAAM;AAEjD,SAAAQ,EAAM,OAAO,UAAUkB,GACvBlB,EAAM,OAAO,SAAS;AAAA,IACpB,GAAGoB,EAAgB5B,CAAM;AAAA,IACzB,GAAGwB,EAAO,OAAO;AAAA,IACjB,GAAG3B,EAAM,UAAU;AAAA,EAAA,GAGrBW,EAAM,OAAO,YAAY;AAAA,IACvB,GAAGqB,EAAaH,GAAS1B,CAAM;AAAA,IAC/B,GAAGH,EAAM,UAAU;AAAA,EAAA,GAGrBU,EAAcC,GAAOX,EAAM,QAAQ,GACnCa,EAAaF,GAAOX,EAAM,OAAO,GAE1BW;AACT;AAYO,SAASsB,EACdC,GACAlC,GACAuB,GACM;AACN,EAAIA,MAAW,WACbW,EAAK,SAASX,IAEhBW,EAAK,QAAQlC,GACbkC,EAAK,OAAOlC,EAAM,UAAU,QAAQ,IACpCkC,EAAK,WAAWlC,EAAM,UAAU,YAAY,IAC5CkC,EAAK,QAAQZ,EAA8BtB,GAAOkC,EAAK,MAAM;AAC/D;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getPlaygroundTheme, getTheme, getThemeVars, OS_LEADERBOARD_CASINO_THEMES, playgroundThemes, type OsLeaderboardCasinoThemeId, type OsLeaderboardCasinoThemeOption, } from './assets-context.js';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { LitElement, nothing, TemplateResult } from 'lit';
|
|
2
|
+
import { OsLeaderboardCasinoClimbSection } from '../../types/sections.js';
|
|
3
|
+
import { ClimbSectionHost } from './climb-section.host.js';
|
|
4
|
+
/** "Your climb" — progress towards the next prize tier with rank trend. */
|
|
5
|
+
export declare class OsLeaderboardCasinoClimb extends LitElement implements ClimbSectionHost {
|
|
6
|
+
static styles: import('lit').CSSResult[];
|
|
7
|
+
section: OsLeaderboardCasinoClimbSection;
|
|
8
|
+
get climbTitle(): string;
|
|
9
|
+
get pointsLabel(): string;
|
|
10
|
+
get trendClass(): string;
|
|
11
|
+
renderTrend(): TemplateResult;
|
|
12
|
+
get pointsToNextLabel(): string;
|
|
13
|
+
get nextTierRank(): number;
|
|
14
|
+
get nextTierLabel(): string;
|
|
15
|
+
renderNextTierPrizeIcon(): TemplateResult;
|
|
16
|
+
get progressPct(): number;
|
|
17
|
+
renderName(): TemplateResult;
|
|
18
|
+
render(): TemplateResult | typeof nothing;
|
|
19
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TemplateResult } from 'lit';
|
|
2
|
+
import { OsLeaderboardCasinoClimbSection } from '../../types/sections.js';
|
|
3
|
+
export interface ClimbSectionHost {
|
|
4
|
+
section: OsLeaderboardCasinoClimbSection;
|
|
5
|
+
climbTitle: string;
|
|
6
|
+
pointsLabel: string;
|
|
7
|
+
trendClass: string;
|
|
8
|
+
pointsToNextLabel: string;
|
|
9
|
+
nextTierRank: number;
|
|
10
|
+
nextTierLabel: string;
|
|
11
|
+
progressPct: number;
|
|
12
|
+
renderName(): TemplateResult;
|
|
13
|
+
renderTrend(): TemplateResult;
|
|
14
|
+
renderNextTierPrizeIcon(): TemplateResult;
|
|
15
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { html as e } from "lit";
|
|
2
|
+
function i(a) {
|
|
3
|
+
return e`<section>
|
|
4
|
+
<div class="section-header">
|
|
5
|
+
<h2 class="section-title">${a.climbTitle}</h2>
|
|
6
|
+
</div>
|
|
7
|
+
|
|
8
|
+
<div class="card ${a.section.vip ? "vip" : ""}">
|
|
9
|
+
<div class="top">
|
|
10
|
+
<div class="rank-ring"><b>#${a.section.rank}</b></div>
|
|
11
|
+
<div class="who">
|
|
12
|
+
<div class="name">${a.renderName()}</div>
|
|
13
|
+
<div class="pts">${a.pointsLabel}</div>
|
|
14
|
+
</div>
|
|
15
|
+
<span class="trend ${a.trendClass}">${a.renderTrend()}</span>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<div class="progress">
|
|
19
|
+
<div class="progress-labels">
|
|
20
|
+
<span class="goal">
|
|
21
|
+
<b>${a.pointsToNextLabel}</b>
|
|
22
|
+
to reach top ${a.nextTierRank}
|
|
23
|
+
</span>
|
|
24
|
+
<span class="target">
|
|
25
|
+
<span class="target-label">next:</span>
|
|
26
|
+
<em>${a.renderNextTierPrizeIcon()} ${a.nextTierLabel}</em>
|
|
27
|
+
</span>
|
|
28
|
+
</div>
|
|
29
|
+
<div
|
|
30
|
+
class="bar"
|
|
31
|
+
role="progressbar"
|
|
32
|
+
aria-valuenow="${a.progressPct}"
|
|
33
|
+
aria-valuemin="0"
|
|
34
|
+
aria-valuemax="100"
|
|
35
|
+
>
|
|
36
|
+
<div class="fill" style="width: ${a.progressPct}%"></div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</section>
|
|
41
|
+
`;
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
i as default
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=climb-section.html.js.map
|
package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.html.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"climb-section.html.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/climb-section/climb-section.html?lit-html"],"sourcesContent":["\nimport { html } 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 ${host.section.vip ? 'vip' : ''}\">\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\">\n <b>${host.pointsToNextLabel}</b>\n to reach top ${host.nextTierRank}\n </span>\n <span class=\"target\">\n <span class=\"target-label\">next:</span>\n <em>${host.renderNextTierPrizeIcon()} ${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"],"names":["render","host","html"],"mappings":";AAGe,SAASA,EAAOC,GAAM;AACnC,SAAOC;AAAA;AAAA,gCAEuBD,EAAK,UAAU;AAAA;AAAA;AAAA,qBAG1BA,EAAK,QAAQ,MAAM,QAAQ,EAAE;AAAA;AAAA,mCAEfA,EAAK,QAAQ,IAAI;AAAA;AAAA,4BAExBA,EAAK,YAAY;AAAA,2BAClBA,EAAK,WAAW;AAAA;AAAA,2BAEhBA,EAAK,UAAU,KAAKA,EAAK,YAAW,CAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAMlDA,EAAK,iBAAiB;AAAA,yBACZA,EAAK,YAAY;AAAA;AAAA;AAAA;AAAA,gBAI1BA,EAAK,wBAAuB,CAAE,IAAIA,EAAK,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAM3CA,EAAK,WAAW;AAAA;AAAA;AAAA;AAAA,0CAICA,EAAK,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAM1D;"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { LitElement as u, html as m, nothing as b } from "lit";
|
|
2
|
+
import { property as d } from "lit/decorators.js";
|
|
3
|
+
import { unsafeSVG as p } from "lit/directives/unsafe-svg.js";
|
|
4
|
+
import g from "../../assets/icons/table.rank-up.svg.js";
|
|
5
|
+
import h from "../../assets/icons/table.rank-down.svg.js";
|
|
6
|
+
import v from "../../assets/icons/table.rank-neutral.svg.js";
|
|
7
|
+
import { Component as x } from "../../../../shared/lib/lit/component.js";
|
|
8
|
+
import { scss as L } from "../../../../shared/lib/lit/scss.js";
|
|
9
|
+
import { OS_LEADERBOARD_CASINO_CLIMB as S } from "../../constants/tags.js";
|
|
10
|
+
import { osLeaderboardCasinoTheme as T } from "../../theme/styles.js";
|
|
11
|
+
import { renderPlayerName as N } from "../../theme/vip-mark.js";
|
|
12
|
+
import { iconService as l } from "../../services/icon.service.js";
|
|
13
|
+
import _ from "./climb-section.html.js";
|
|
14
|
+
import C from "./climb-section.scss.js";
|
|
15
|
+
var O = Object.defineProperty, P = Object.getOwnPropertyDescriptor, f = (e, t, i, n) => {
|
|
16
|
+
for (var r = n > 1 ? void 0 : n ? P(t, i) : t, s = e.length - 1, a; s >= 0; s--)
|
|
17
|
+
(a = e[s]) && (r = (n ? a(t, i, r) : a(r)) || r);
|
|
18
|
+
return n && r && O(t, i, r), r;
|
|
19
|
+
};
|
|
20
|
+
function c(e) {
|
|
21
|
+
return e.replace("<svg ", '<svg viewBox="0 0 512 512" ');
|
|
22
|
+
}
|
|
23
|
+
const w = c(g), $ = c(h), y = c(v);
|
|
24
|
+
let o = class extends u {
|
|
25
|
+
get climbTitle() {
|
|
26
|
+
return this.section?.title ?? "Your climb";
|
|
27
|
+
}
|
|
28
|
+
get pointsLabel() {
|
|
29
|
+
return `${this.section.points.toLocaleString()} pts`;
|
|
30
|
+
}
|
|
31
|
+
get trendClass() {
|
|
32
|
+
const e = this.section?.trend ?? 0;
|
|
33
|
+
return e > 0 ? "up" : e < 0 ? "down" : "flat";
|
|
34
|
+
}
|
|
35
|
+
renderTrend() {
|
|
36
|
+
const e = this.section?.trend ?? 0;
|
|
37
|
+
return e > 0 ? m`${p(w)}<b>${e}</b>` : e < 0 ? m`${p($)}<b>${Math.abs(e)}</b>` : m`${p(y)}<b>steady</b>`;
|
|
38
|
+
}
|
|
39
|
+
get pointsToNextLabel() {
|
|
40
|
+
return `${this.section.pointsToNextTier.toLocaleString()} pts`;
|
|
41
|
+
}
|
|
42
|
+
get nextTierRank() {
|
|
43
|
+
return this.section.nextTierRank;
|
|
44
|
+
}
|
|
45
|
+
get nextTierLabel() {
|
|
46
|
+
return this.section.nextTierLabel;
|
|
47
|
+
}
|
|
48
|
+
renderNextTierPrizeIcon() {
|
|
49
|
+
const e = l.resolvePrizeIconName(this.section.nextTierLabel);
|
|
50
|
+
return l.get(e).render({
|
|
51
|
+
className: "prize-icon prize-icon--inline"
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
get progressPct() {
|
|
55
|
+
return Math.round(Math.min(1, Math.max(0, this.section.progress)) * 100);
|
|
56
|
+
}
|
|
57
|
+
renderName() {
|
|
58
|
+
return N(this.section.username, { vip: this.section.vip });
|
|
59
|
+
}
|
|
60
|
+
render() {
|
|
61
|
+
return this.section ? _(this) : b;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
o.styles = [T, L(C)];
|
|
65
|
+
f([
|
|
66
|
+
d({ attribute: !1 })
|
|
67
|
+
], o.prototype, "section", 2);
|
|
68
|
+
o = f([
|
|
69
|
+
x({ selector: S })
|
|
70
|
+
], o);
|
|
71
|
+
export {
|
|
72
|
+
o as OsLeaderboardCasinoClimb
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=climb-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"climb-section.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/climb-section/climb-section.ts"],"sourcesContent":["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 '../../assets/icons/table.rank-up.svg?raw';\nimport rankDownSvg from '../../assets/icons/table.rank-down.svg?raw';\nimport rankNeutralSvg from '../../assets/icons/table.rank-neutral.svg?raw';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { OS_LEADERBOARD_CASINO_CLIMB } from '@os-leaderboard-casino/constants/tags.js';\nimport { osLeaderboardCasinoTheme } from '@os-leaderboard-casino/theme/index.js';\nimport { renderPlayerName } from '@os-leaderboard-casino/theme/vip-mark.js';\nimport { iconService } from '@os-leaderboard-casino/services/icon.service.js';\nimport type { OsLeaderboardCasinoClimbSection } from '@os-leaderboard-casino/types/sections.js';\nimport type { ClimbSectionHost } from './climb-section.host.js';\nimport renderTemplate from './climb-section.html?lit-html';\nimport styles from './climb-section.scss?inline';\n\nfunction addViewBox(svg: string): string {\n return svg.replace('<svg ', '<svg viewBox=\"0 0 512 512\" ');\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 = [osLeaderboardCasinoTheme, scss(styles)];\n\n @property({ attribute: false })\n section!: OsLeaderboardCasinoClimbSection;\n\n get climbTitle(): string {\n return this.section?.title ?? 'Your climb';\n }\n\n get pointsLabel(): string {\n return `${this.section.points.toLocaleString()} pts`;\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) return html`${unsafeSVG(rankDownSvgVb)}<b>${Math.abs(trend)}</b>`;\n return html`${unsafeSVG(rankNeutralSvgVb)}<b>steady</b>`;\n }\n\n get pointsToNextLabel(): string {\n return `${this.section.pointsToNextTier.toLocaleString()} pts`;\n }\n\n get nextTierRank(): number {\n return this.section.nextTierRank;\n }\n\n get nextTierLabel(): string {\n return this.section.nextTierLabel;\n }\n\n renderNextTierPrizeIcon() {\n const name = iconService.resolvePrizeIconName(this.section.nextTierLabel);\n return iconService.get(name).render({\n className: 'prize-icon prize-icon--inline',\n });\n }\n\n get progressPct(): number {\n return Math.round(Math.min(1, Math.max(0, this.section.progress)) * 100);\n }\n\n renderName() {\n return renderPlayerName(this.section.username, { vip: this.section.vip });\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n"],"names":["addViewBox","svg","rankUpSvgVb","rankUpSvg","rankDownSvgVb","rankDownSvg","rankNeutralSvgVb","rankNeutralSvg","OsLeaderboardCasinoClimb","LitElement","trend","html","unsafeSVG","name","iconService","renderPlayerName","renderTemplate","nothing","osLeaderboardCasinoTheme","scss","styles","__decorateClass","property","Component","OS_LEADERBOARD_CASINO_CLIMB"],"mappings":";;;;;;;;;;;;;;;;;;;AAiBA,SAASA,EAAWC,GAAqB;AACvC,SAAOA,EAAI,QAAQ,SAAS,6BAA6B;AAC3D;AACA,MAAMC,IAAcF,EAAWG,CAAS,GAClCC,IAAgBJ,EAAWK,CAAW,GACtCC,IAAmBN,EAAWO,CAAc;AAI3C,IAAMC,IAAN,cACGC,EAEV;AAAA,EAME,IAAI,aAAqB;AACvB,WAAO,KAAK,SAAS,SAAS;AAAA,EAChC;AAAA,EAEA,IAAI,cAAsB;AACxB,WAAO,GAAG,KAAK,QAAQ,OAAO,gBAAgB;AAAA,EAChD;AAAA,EAEA,IAAI,aAAqB;AACvB,UAAMC,IAAQ,KAAK,SAAS,SAAS;AACrC,WAAOA,IAAQ,IAAI,OAAOA,IAAQ,IAAI,SAAS;AAAA,EACjD;AAAA,EAEA,cAA8B;AAC5B,UAAMA,IAAQ,KAAK,SAAS,SAAS;AACrC,WAAIA,IAAQ,IAAUC,IAAOC,EAAUV,CAAW,CAAC,MAAMQ,CAAK,SAC1DA,IAAQ,IAAUC,IAAOC,EAAUR,CAAa,CAAC,MAAM,KAAK,IAAIM,CAAK,CAAC,SACnEC,IAAOC,EAAUN,CAAgB,CAAC;AAAA,EAC3C;AAAA,EAEA,IAAI,oBAA4B;AAC9B,WAAO,GAAG,KAAK,QAAQ,iBAAiB,gBAAgB;AAAA,EAC1D;AAAA,EAEA,IAAI,eAAuB;AACzB,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAI,gBAAwB;AAC1B,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,0BAA0B;AACxB,UAAMO,IAAOC,EAAY,qBAAqB,KAAK,QAAQ,aAAa;AACxE,WAAOA,EAAY,IAAID,CAAI,EAAE,OAAO;AAAA,MAClC,WAAW;AAAA,IAAA,CACZ;AAAA,EACH;AAAA,EAEA,IAAI,cAAsB;AACxB,WAAO,KAAK,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,QAAQ,QAAQ,CAAC,IAAI,GAAG;AAAA,EACzE;AAAA,EAEA,aAAa;AACX,WAAOE,EAAiB,KAAK,QAAQ,UAAU,EAAE,KAAK,KAAK,QAAQ,KAAK;AAAA,EAC1E;AAAA,EAEA,SAAS;AACP,WAAK,KAAK,UACHC,EAAe,IAAI,IADAC;AAAA,EAE5B;AACF;AA5DaT,EAIJ,SAAS,CAACU,GAA0BC,EAAKC,CAAM,CAAC;AAGvDC,EAAA;AAAA,EADCC,EAAS,EAAE,WAAW,GAAA,CAAO;AAAA,GANnBd,EAOX,WAAA,WAAA,CAAA;AAPWA,IAANa,EAAA;AAAA,EADNE,EAAU,EAAE,UAAUC,EAAA,CAA6B;AAAA,GACvChB,CAAA;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const r = ':host{display:block;width:100%}.card{position:relative;overflow:hidden;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius-sm);box-shadow:var(--panel-shadow);padding:16px 18px}.top{display:flex;align-items:center;gap:13px;flex-wrap:wrap}.rank-ring{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(var(--surface-solid),var(--surface-solid)) padding-box,conic-gradient(from 220deg,var(--violet),var(--gold),var(--violet)) border-box;border:2px solid transparent}.rank-ring b{font-family:var(--font-mono);font-size:15px;font-weight:800;color:var(--text)}.who{flex:1;min-width:0}.name{font-family:var(--font-display);font-size:15px;font-weight:800;color:var(--text)}.pts{margin-top:1px;font-family:var(--font-mono);font-size:12px;color:var(--text-dim)}.trend{flex:none;display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:12px;font-weight:800;padding:6px 12px;border-radius:999px;border:1px solid var(--hairline)}.trend svg{width:15px;height:15px;flex:none}.trend.up{color:var(--green);background:var(--green-soft);border-color:color-mix(in srgb,var(--green) 35%,transparent)}.trend.down{color:var(--red);background:var(--red-soft);border-color:color-mix(in srgb,var(--red) 35%,transparent)}.trend.flat{color:var(--text-dim);background:#ffffff0a}.progress{margin-top:15px}.progress-labels{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px}.goal{font-size:12px;color:var(--text-dim)}.goal b{color:var(--gold-strong);font-weight:800}.target{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--text-faint);white-space:nowrap}.target-label{line-height:1}.target em{display:inline-flex;align-items:center;gap:4px;font-style:normal;color:var(--text);line-height:1}.bar{position:relative;height:10px;border-radius:999px;background:#ffffff0f;border:1px solid var(--hairline);overflow:hidden}.fill{position:relative;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--violet) 0%,var(--gold) 100%);box-shadow:0 0 14px var(--gold-glow);transition:width .8s cubic-bezier(.22,1,.36,1)}.fill:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);background-size:200% 100%;animation:bar-shine 2.6s linear infinite}@keyframes bar-shine{0%{background-position:180% 0}to{background-position:-80% 0}}';
|
|
2
|
+
export {
|
|
3
|
+
r as default
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=climb-section.scss.js.map
|
package/dist/components/os-leaderboard-casino/sections/climb-section/climb-section.scss.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"climb-section.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TemplateResult } from 'lit';
|
|
2
|
+
import { OsLeaderboardCasinoEventItem } from '../../../types/sections.js';
|
|
3
|
+
export type EventIconName = 'boost' | 'gift' | 'bolt' | 'fire' | 'star' | 'clock';
|
|
4
|
+
export declare const eventIcon: (name: EventIconName) => TemplateResult;
|
|
5
|
+
export declare function resolveEventIcon(event: OsLeaderboardCasinoEventItem): TemplateResult | string;
|
package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { html as o } from "lit";
|
|
2
|
+
const t = (r) => {
|
|
3
|
+
switch (r) {
|
|
4
|
+
case "boost":
|
|
5
|
+
return o`<svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
6
|
+
<path
|
|
7
|
+
d="M4 20 9 9l6 6-11 5Z"
|
|
8
|
+
fill="currentColor"
|
|
9
|
+
opacity=".25"
|
|
10
|
+
/>
|
|
11
|
+
<path
|
|
12
|
+
d="M4 20 9 9l6 6-11 5Z"
|
|
13
|
+
stroke="currentColor"
|
|
14
|
+
stroke-width="1.5"
|
|
15
|
+
stroke-linejoin="round"
|
|
16
|
+
/>
|
|
17
|
+
<path
|
|
18
|
+
d="M14 3v3M19 5l-2 2M21 10h-3"
|
|
19
|
+
stroke="currentColor"
|
|
20
|
+
stroke-width="1.5"
|
|
21
|
+
stroke-linecap="round"
|
|
22
|
+
/>
|
|
23
|
+
<circle cx="15.5" cy="8.5" r="2.5" fill="currentColor" opacity=".4" />
|
|
24
|
+
</svg>`;
|
|
25
|
+
case "gift":
|
|
26
|
+
return o`<svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
27
|
+
<rect
|
|
28
|
+
x="4"
|
|
29
|
+
y="9"
|
|
30
|
+
width="16"
|
|
31
|
+
height="11"
|
|
32
|
+
rx="1.5"
|
|
33
|
+
stroke="currentColor"
|
|
34
|
+
stroke-width="1.5"
|
|
35
|
+
/>
|
|
36
|
+
<path d="M4 9h16M12 9v11" stroke="currentColor" stroke-width="1.5" />
|
|
37
|
+
<path
|
|
38
|
+
d="M12 9C9 9 7 4 9.5 4S12 7 12 9Zm0 0c3 0 5-5 2.5-5S12 7 12 9Z"
|
|
39
|
+
stroke="currentColor"
|
|
40
|
+
stroke-width="1.5"
|
|
41
|
+
stroke-linejoin="round"
|
|
42
|
+
/>
|
|
43
|
+
</svg>`;
|
|
44
|
+
case "bolt":
|
|
45
|
+
return o`<svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
46
|
+
<path
|
|
47
|
+
d="M13 2 4 14h6l-1 8 9-12h-6l1-8Z"
|
|
48
|
+
fill="currentColor"
|
|
49
|
+
opacity=".25"
|
|
50
|
+
/>
|
|
51
|
+
<path
|
|
52
|
+
d="M13 2 4 14h6l-1 8 9-12h-6l1-8Z"
|
|
53
|
+
stroke="currentColor"
|
|
54
|
+
stroke-width="1.5"
|
|
55
|
+
stroke-linejoin="round"
|
|
56
|
+
/>
|
|
57
|
+
</svg>`;
|
|
58
|
+
case "fire":
|
|
59
|
+
return o`<svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
60
|
+
<path
|
|
61
|
+
d="M12 3c1 3 4 4 4 8a4 4 0 1 1-8 0c0-2 1-3 2-4 .5 1.5 2 2 2-4Z"
|
|
62
|
+
fill="currentColor"
|
|
63
|
+
opacity=".25"
|
|
64
|
+
/>
|
|
65
|
+
<path
|
|
66
|
+
d="M12 3c1 3 4 4 4 8a4 4 0 1 1-8 0c0-2 1-3 2-4 .5 1.5 2 2 2-4Z"
|
|
67
|
+
stroke="currentColor"
|
|
68
|
+
stroke-width="1.5"
|
|
69
|
+
stroke-linejoin="round"
|
|
70
|
+
/>
|
|
71
|
+
</svg>`;
|
|
72
|
+
case "star":
|
|
73
|
+
return o`<svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
74
|
+
<path
|
|
75
|
+
d="m12 3 2.6 5.5 6 .8-4.4 4.2 1.1 6L12 16.8 6.7 19.5l1.1-6L3.4 9.3l6-.8L12 3Z"
|
|
76
|
+
fill="currentColor"
|
|
77
|
+
opacity=".25"
|
|
78
|
+
/>
|
|
79
|
+
<path
|
|
80
|
+
d="m12 3 2.6 5.5 6 .8-4.4 4.2 1.1 6L12 16.8 6.7 19.5l1.1-6L3.4 9.3l6-.8L12 3Z"
|
|
81
|
+
stroke="currentColor"
|
|
82
|
+
stroke-width="1.5"
|
|
83
|
+
stroke-linejoin="round"
|
|
84
|
+
/>
|
|
85
|
+
</svg>`;
|
|
86
|
+
case "clock":
|
|
87
|
+
return o`<svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
88
|
+
<circle cx="12" cy="12" r="9" stroke="currentColor" stroke-width="1.5" />
|
|
89
|
+
<path
|
|
90
|
+
d="M12 7v5l3.5 2"
|
|
91
|
+
stroke="currentColor"
|
|
92
|
+
stroke-width="1.5"
|
|
93
|
+
stroke-linecap="round"
|
|
94
|
+
stroke-linejoin="round"
|
|
95
|
+
/>
|
|
96
|
+
</svg>`;
|
|
97
|
+
}
|
|
98
|
+
}, e = {
|
|
99
|
+
"event-1": "bolt",
|
|
100
|
+
"event-2": "boost"
|
|
101
|
+
}, n = {
|
|
102
|
+
gold: "bolt",
|
|
103
|
+
violet: "boost",
|
|
104
|
+
green: "star",
|
|
105
|
+
red: "fire"
|
|
106
|
+
};
|
|
107
|
+
function l(r) {
|
|
108
|
+
return r.icon ? r.icon : t(
|
|
109
|
+
e[r.id] ?? n[r.accent ?? "gold"] ?? "star"
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
export {
|
|
113
|
+
t as eventIcon,
|
|
114
|
+
l as resolveEventIcon
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=event-icons.js.map
|
package/dist/components/os-leaderboard-casino/sections/events-banner/components/event-icons.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-icons.js","sources":["../../../../../../src/components/os-leaderboard-casino/sections/events-banner/components/event-icons.ts"],"sourcesContent":["import { html, type TemplateResult } from 'lit';\nimport type { OsLeaderboardCasinoEventItem } from '@os-leaderboard-casino/types/sections.js';\n\nexport type EventIconName = 'boost' | 'gift' | 'bolt' | 'fire' | 'star' | 'clock';\n\nexport const eventIcon = (name: EventIconName): TemplateResult => {\n switch (name) {\n case 'boost':\n return html`<svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M4 20 9 9l6 6-11 5Z\"\n fill=\"currentColor\"\n opacity=\".25\"\n />\n <path\n d=\"M4 20 9 9l6 6-11 5Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14 3v3M19 5l-2 2M21 10h-3\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n />\n <circle cx=\"15.5\" cy=\"8.5\" r=\"2.5\" fill=\"currentColor\" opacity=\".4\" />\n </svg>`;\n case 'gift':\n return html`<svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <rect\n x=\"4\"\n y=\"9\"\n width=\"16\"\n height=\"11\"\n rx=\"1.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n />\n <path d=\"M4 9h16M12 9v11\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n <path\n d=\"M12 9C9 9 7 4 9.5 4S12 7 12 9Zm0 0c3 0 5-5 2.5-5S12 7 12 9Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>`;\n case 'bolt':\n return html`<svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M13 2 4 14h6l-1 8 9-12h-6l1-8Z\"\n fill=\"currentColor\"\n opacity=\".25\"\n />\n <path\n d=\"M13 2 4 14h6l-1 8 9-12h-6l1-8Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>`;\n case 'fire':\n return html`<svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M12 3c1 3 4 4 4 8a4 4 0 1 1-8 0c0-2 1-3 2-4 .5 1.5 2 2 2-4Z\"\n fill=\"currentColor\"\n opacity=\".25\"\n />\n <path\n d=\"M12 3c1 3 4 4 4 8a4 4 0 1 1-8 0c0-2 1-3 2-4 .5 1.5 2 2 2-4Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>`;\n case 'star':\n return html`<svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"m12 3 2.6 5.5 6 .8-4.4 4.2 1.1 6L12 16.8 6.7 19.5l1.1-6L3.4 9.3l6-.8L12 3Z\"\n fill=\"currentColor\"\n opacity=\".25\"\n />\n <path\n d=\"m12 3 2.6 5.5 6 .8-4.4 4.2 1.1 6L12 16.8 6.7 19.5l1.1-6L3.4 9.3l6-.8L12 3Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linejoin=\"round\"\n />\n </svg>`;\n case 'clock':\n return html`<svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n <path\n d=\"M12 7v5l3.5 2\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>`;\n }\n};\n\nconst ICON_BY_ID: Record<string, EventIconName> = {\n 'event-1': 'bolt',\n 'event-2': 'boost',\n};\n\nconst ICON_BY_ACCENT: Record<\n NonNullable<OsLeaderboardCasinoEventItem['accent']>,\n EventIconName\n> = {\n gold: 'bolt',\n violet: 'boost',\n green: 'star',\n red: 'fire',\n};\n\nexport function resolveEventIcon(\n event: OsLeaderboardCasinoEventItem,\n): TemplateResult | string {\n if (event.icon) return event.icon;\n return eventIcon(\n ICON_BY_ID[event.id] ??\n ICON_BY_ACCENT[event.accent ?? 'gold'] ??\n 'star',\n );\n}\n"],"names":["eventIcon","name","html","ICON_BY_ID","ICON_BY_ACCENT","resolveEventIcon","event"],"mappings":";AAKO,MAAMA,IAAY,CAACC,MAAwC;AAChE,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAOC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAoBT,KAAK;AACH,aAAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAkBT,KAAK;AACH,aAAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaT,KAAK;AACH,aAAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaT,KAAK;AACH,aAAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaT,KAAK;AACH,aAAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA;AAWb,GAEMC,IAA4C;AAAA,EAChD,WAAW;AAAA,EACX,WAAW;AACb,GAEMC,IAGF;AAAA,EACF,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,KAAK;AACP;AAEO,SAASC,EACdC,GACyB;AACzB,SAAIA,EAAM,OAAaA,EAAM,OACtBN;AAAA,IACLG,EAAWG,EAAM,EAAE,KACjBF,EAAeE,EAAM,UAAU,MAAM,KACrC;AAAA,EAAA;AAEN;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LitElement, nothing } from 'lit';
|
|
2
|
+
import { OsLeaderboardCasinoEventsSection } from '../../types/sections.js';
|
|
3
|
+
/** Promotional events — v0 Glass Glow (icon chip, fade rotation). */
|
|
4
|
+
export declare class OsLeaderboardCasinoEvents extends LitElement {
|
|
5
|
+
static styles: import('lit').CSSResult[];
|
|
6
|
+
section: OsLeaderboardCasinoEventsSection;
|
|
7
|
+
private index;
|
|
8
|
+
private timer?;
|
|
9
|
+
connectedCallback(): void;
|
|
10
|
+
disconnectedCallback(): void;
|
|
11
|
+
updated(changed: Map<string, unknown>): void;
|
|
12
|
+
private startRotation;
|
|
13
|
+
private stopRotation;
|
|
14
|
+
private goTo;
|
|
15
|
+
render(): typeof nothing | import('lit').TemplateResult<1>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TemplateResult } from 'lit';
|
|
2
|
+
import { OsLeaderboardCasinoEventsSection } from '../../types/sections.js';
|
|
3
|
+
export interface EventsBannerHost {
|
|
4
|
+
section: OsLeaderboardCasinoEventsSection;
|
|
5
|
+
showDots: boolean;
|
|
6
|
+
renderSlides(): TemplateResult;
|
|
7
|
+
renderDots(): TemplateResult;
|
|
8
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { LitElement as d, nothing as l, html as r } from "lit";
|
|
2
|
+
import { keyed as h } from "lit/directives/keyed.js";
|
|
3
|
+
import { property as m, state as v } from "lit/decorators.js";
|
|
4
|
+
import { Component as f } from "../../../../shared/lib/lit/component.js";
|
|
5
|
+
import { scss as u } from "../../../../shared/lib/lit/scss.js";
|
|
6
|
+
import { DEFAULT_EVENTS_ROTATE_MS as b } from "../../constants/defaults.js";
|
|
7
|
+
import { OS_LEADERBOARD_CASINO_EVENTS as _ } from "../../constants/tags.js";
|
|
8
|
+
import { osLeaderboardCasinoTheme as $ } from "../../theme/styles.js";
|
|
9
|
+
import "lit/directives/unsafe-svg.js";
|
|
10
|
+
import { resolveEventIcon as g } from "./components/event-icons.js";
|
|
11
|
+
import E from "./events-banner.scss.js";
|
|
12
|
+
var x = Object.defineProperty, R = Object.getOwnPropertyDescriptor, p = (t, e, n, s) => {
|
|
13
|
+
for (var o = s > 1 ? void 0 : s ? R(e, n) : e, i = t.length - 1, c; i >= 0; i--)
|
|
14
|
+
(c = t[i]) && (o = (s ? c(e, n, o) : c(o)) || o);
|
|
15
|
+
return s && o && x(e, n, o), o;
|
|
16
|
+
};
|
|
17
|
+
let a = class extends d {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments), this.index = 0;
|
|
20
|
+
}
|
|
21
|
+
connectedCallback() {
|
|
22
|
+
super.connectedCallback(), this.startRotation();
|
|
23
|
+
}
|
|
24
|
+
disconnectedCallback() {
|
|
25
|
+
super.disconnectedCallback(), this.stopRotation();
|
|
26
|
+
}
|
|
27
|
+
updated(t) {
|
|
28
|
+
t.has("section") && (this.index = 0, this.startRotation());
|
|
29
|
+
}
|
|
30
|
+
startRotation() {
|
|
31
|
+
this.stopRotation();
|
|
32
|
+
const t = this.section?.events?.length ?? 0;
|
|
33
|
+
t < 2 || (this.timer = setInterval(() => {
|
|
34
|
+
this.index = (this.index + 1) % t;
|
|
35
|
+
}, this.section?.rotateMs ?? b));
|
|
36
|
+
}
|
|
37
|
+
stopRotation() {
|
|
38
|
+
this.timer && clearInterval(this.timer), this.timer = void 0;
|
|
39
|
+
}
|
|
40
|
+
goTo(t) {
|
|
41
|
+
this.index = t, this.startRotation();
|
|
42
|
+
}
|
|
43
|
+
render() {
|
|
44
|
+
const t = this.section?.events ?? [];
|
|
45
|
+
if (!t.length) return l;
|
|
46
|
+
const e = t[this.index], n = e.accent ?? "gold", s = g(e);
|
|
47
|
+
return r`
|
|
48
|
+
<div class="banner" role="region" aria-label="Promotions" aria-live="polite">
|
|
49
|
+
<div class="chip accent-${n}">
|
|
50
|
+
${typeof s == "string" ? r`${s}` : s}
|
|
51
|
+
</div>
|
|
52
|
+
${h(
|
|
53
|
+
this.index,
|
|
54
|
+
r`<div class="body">
|
|
55
|
+
<p class="title">${e.title}</p>
|
|
56
|
+
${e.subtitle ? r`<p class="sub">${e.subtitle}</p>` : l}
|
|
57
|
+
</div>`
|
|
58
|
+
)}
|
|
59
|
+
<div class="right">
|
|
60
|
+
<span class="tag accent-${n}">Event</span>
|
|
61
|
+
${t.length > 1 ? r`<div class="dots">
|
|
62
|
+
${t.map(
|
|
63
|
+
(o, i) => r`<button
|
|
64
|
+
type="button"
|
|
65
|
+
class="dot"
|
|
66
|
+
aria-current=${i === this.index ? "true" : "false"}
|
|
67
|
+
aria-label="Show event ${i + 1}"
|
|
68
|
+
@click=${() => this.goTo(i)}
|
|
69
|
+
></button>`
|
|
70
|
+
)}
|
|
71
|
+
</div>` : l}
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
`;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
a.styles = [$, u(E)];
|
|
78
|
+
p([
|
|
79
|
+
m({ attribute: !1 })
|
|
80
|
+
], a.prototype, "section", 2);
|
|
81
|
+
p([
|
|
82
|
+
v()
|
|
83
|
+
], a.prototype, "index", 2);
|
|
84
|
+
a = p([
|
|
85
|
+
f({ selector: _ })
|
|
86
|
+
], a);
|
|
87
|
+
export {
|
|
88
|
+
a as OsLeaderboardCasinoEvents
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=events-banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events-banner.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/events-banner/events-banner.ts"],"sourcesContent":["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 { DEFAULT_EVENTS_ROTATE_MS } from '@os-leaderboard-casino/constants/defaults.js';\nimport { OS_LEADERBOARD_CASINO_EVENTS } from '@os-leaderboard-casino/constants/tags.js';\nimport { osLeaderboardCasinoTheme } from '@os-leaderboard-casino/theme/index.js';\nimport type { OsLeaderboardCasinoEventsSection } from '@os-leaderboard-casino/types/sections.js';\nimport { resolveEventIcon } from './components/event-icons.js';\nimport styles from './events-banner.scss?inline';\n\n/** Promotional events — v0 Glass Glow (icon chip, fade rotation). */\n@Component({ selector: OS_LEADERBOARD_CASINO_EVENTS })\nexport class OsLeaderboardCasinoEvents extends LitElement {\n static styles = [osLeaderboardCasinoTheme, scss(styles)];\n\n @property({ attribute: false })\n section!: OsLeaderboardCasinoEventsSection;\n\n @state()\n private index = 0;\n\n private timer?: ReturnType<typeof setInterval>;\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('section')) {\n this.index = 0;\n this.startRotation();\n }\n }\n\n private startRotation() {\n this.stopRotation();\n const count = this.section?.events?.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 render() {\n const events = this.section?.events ?? [];\n if (!events.length) return nothing;\n\n const event = events[this.index];\n const accent = event.accent ?? 'gold';\n const icon = resolveEventIcon(event);\n\n return html`\n <div class=\"banner\" role=\"region\" aria-label=\"Promotions\" aria-live=\"polite\">\n <div class=\"chip accent-${accent}\">\n ${typeof icon === 'string' ? html`${icon}` : icon}\n </div>\n ${keyed(\n this.index,\n html`<div class=\"body\">\n <p class=\"title\">${event.title}</p>\n ${event.subtitle\n ? html`<p class=\"sub\">${event.subtitle}</p>`\n : nothing}\n </div>`,\n )}\n <div class=\"right\">\n <span class=\"tag accent-${accent}\">Event</span>\n ${events.length > 1\n ? html`<div class=\"dots\">\n ${events.map(\n (_, i) => html`<button\n type=\"button\"\n class=\"dot\"\n aria-current=${i === this.index ? 'true' : 'false'}\n aria-label=\"Show event ${i + 1}\"\n @click=${() => this.goTo(i)}\n ></button>`,\n )}\n </div>`\n : nothing}\n </div>\n </div>\n `;\n }\n}\n"],"names":["OsLeaderboardCasinoEvents","LitElement","changed","count","DEFAULT_EVENTS_ROTATE_MS","index","events","nothing","event","accent","icon","resolveEventIcon","html","keyed","_","osLeaderboardCasinoTheme","scss","styles","__decorateClass","property","state","Component","OS_LEADERBOARD_CASINO_EVENTS"],"mappings":";;;;;;;;;;;;;;;;AAcO,IAAMA,IAAN,cAAwCC,EAAW;AAAA,EAAnD,cAAA;AAAA,UAAA,GAAA,SAAA,GAOL,KAAQ,QAAQ;AAAA,EAAA;AAAA,EAIhB,oBAA0B;AACxB,UAAM,kBAAA,GACN,KAAK,cAAA;AAAA,EACP;AAAA,EAEA,uBAA6B;AAC3B,UAAM,qBAAA,GACN,KAAK,aAAA;AAAA,EACP;AAAA,EAEA,QAAQC,GAA+B;AACrC,IAAIA,EAAQ,IAAI,SAAS,MACvB,KAAK,QAAQ,GACb,KAAK,cAAA;AAAA,EAET;AAAA,EAEQ,gBAAgB;AACtB,SAAK,aAAA;AACL,UAAMC,IAAQ,KAAK,SAAS,QAAQ,UAAU;AAC9C,IAAIA,IAAQ,MACZ,KAAK,QAAQ,YAAY,MAAM;AAC7B,WAAK,SAAS,KAAK,QAAQ,KAAKA;AAAA,IAClC,GAAG,KAAK,SAAS,YAAYC,CAAwB;AAAA,EACvD;AAAA,EAEQ,eAAe;AACrB,IAAI,KAAK,SAAO,cAAc,KAAK,KAAK,GACxC,KAAK,QAAQ;AAAA,EACf;AAAA,EAEQ,KAAKC,GAAe;AAC1B,SAAK,QAAQA,GACb,KAAK,cAAA;AAAA,EACP;AAAA,EAEA,SAAS;AACP,UAAMC,IAAS,KAAK,SAAS,UAAU,CAAA;AACvC,QAAI,CAACA,EAAO,OAAQ,QAAOC;AAE3B,UAAMC,IAAQF,EAAO,KAAK,KAAK,GACzBG,IAASD,EAAM,UAAU,QACzBE,IAAOC,EAAiBH,CAAK;AAEnC,WAAOI;AAAA;AAAA,kCAEuBH,CAAM;AAAA,YAC5B,OAAOC,KAAS,WAAWE,IAAOF,CAAI,KAAKA,CAAI;AAAA;AAAA,UAEjDG;AAAA,MACA,KAAK;AAAA,MACLD;AAAA,+BACqBJ,EAAM,KAAK;AAAA,cAC5BA,EAAM,WACJI,mBAAsBJ,EAAM,QAAQ,SACpCD,CAAO;AAAA;AAAA,IAAA,CAEd;AAAA;AAAA,oCAE2BE,CAAM;AAAA,YAC9BH,EAAO,SAAS,IACdM;AAAA,kBACIN,EAAO;AAAA,MACP,CAACQ,GAAG,MAAMF;AAAA;AAAA;AAAA,mCAGO,MAAM,KAAK,QAAQ,SAAS,OAAO;AAAA,6CACzB,IAAI,CAAC;AAAA,6BACrB,MAAM,KAAK,KAAK,CAAC,CAAC;AAAA;AAAA,IAAA,CAE9B;AAAA,wBAEHL,CAAO;AAAA;AAAA;AAAA;AAAA,EAInB;AACF;AAxFaP,EACJ,SAAS,CAACe,GAA0BC,EAAKC,CAAM,CAAC;AAGvDC,EAAA;AAAA,EADCC,EAAS,EAAE,WAAW,GAAA,CAAO;AAAA,GAHnBnB,EAIX,WAAA,WAAA,CAAA;AAGQkB,EAAA;AAAA,EADPE,EAAA;AAAM,GANIpB,EAOH,WAAA,SAAA,CAAA;AAPGA,IAANkB,EAAA;AAAA,EADNG,EAAU,EAAE,UAAUC,EAAA,CAA8B;AAAA,GACxCtB,CAAA;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const r = ":host{display:block;width:100%}.banner{position:relative;display:flex;align-items:center;gap:18px;padding:16px 20px;border-radius:var(--radius-sm);background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow);overflow:hidden;cursor:pointer}.chip{position:relative;z-index:1;flex:none;width:50px;height:50px;display:grid;place-items:center;border-radius:14px;color:var(--gold);font-size:22px;background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 16%,transparent),color-mix(in srgb,var(--violet) 12%,transparent));border:1px solid color-mix(in srgb,var(--gold) 30%,transparent)}.chip.accent-violet{color:var(--violet);background:linear-gradient(160deg,color-mix(in srgb,var(--violet) 18%,transparent),color-mix(in srgb,var(--gold) 8%,transparent));border-color:color-mix(in srgb,var(--violet) 30%,transparent)}.chip.accent-green{color:var(--green);background:linear-gradient(160deg,color-mix(in srgb,var(--green) 18%,transparent),color-mix(in srgb,var(--gold) 8%,transparent));border-color:color-mix(in srgb,var(--green) 30%,transparent)}.chip.accent-red{color:var(--red);background:linear-gradient(160deg,color-mix(in srgb,var(--red) 18%,transparent),color-mix(in srgb,var(--gold) 8%,transparent));border-color:color-mix(in srgb,var(--red) 30%,transparent)}.chip svg{width:26px;height:26px}.body{position:relative;z-index:1;min-width:0;flex:1}.title{margin:0;font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sub{margin:4px 0 0;font-size:12px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;align-self:stretch;flex:none;min-height:50px}.tag{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#d9cdff;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--violet) 14%,transparent);border:1px solid color-mix(in srgb,var(--violet) 32%,transparent)}.tag.accent-gold{color:var(--gold-strong);background:var(--gold-soft);border-color:color-mix(in srgb,var(--gold) 35%,transparent)}.tag.accent-green{color:color-mix(in srgb,var(--green) 85%,var(--text));background:color-mix(in srgb,var(--green) 14%,transparent);border-color:color-mix(in srgb,var(--green) 32%,transparent)}.tag.accent-red{color:color-mix(in srgb,var(--red) 85%,var(--text));background:color-mix(in srgb,var(--red) 14%,transparent);border-color:color-mix(in srgb,var(--red) 32%,transparent)}.dots{display:flex;gap:6px}.dot{height:4px;width:14px;border-radius:999px;border:none;padding:0;cursor:pointer;background:color-mix(in srgb,var(--text) 16%,transparent);transition:width var(--transition-fast),background var(--transition-fast)}.dot[aria-current=true]{width:26px;background:var(--gold)}@media(max-width:560px){.banner{gap:14px;padding:14px 16px;align-items:stretch}.title,.sub{white-space:normal}.body,.chip{align-self:center}}";
|
|
2
|
+
export {
|
|
3
|
+
r as default
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=events-banner.scss.js.map
|
package/dist/components/os-leaderboard-casino/sections/events-banner/events-banner.scss.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events-banner.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LitElement, nothing } from 'lit';
|
|
2
|
+
import { OsLeaderboardCasinoFooterSection } from '../../types/sections.js';
|
|
3
|
+
import { FooterSectionHost } from './footer-section.host.js';
|
|
4
|
+
export declare class OsLeaderboardCasinoFooter extends LitElement implements FooterSectionHost {
|
|
5
|
+
static styles: import('lit').CSSResult[];
|
|
6
|
+
section?: OsLeaderboardCasinoFooterSection;
|
|
7
|
+
text: string;
|
|
8
|
+
get displayText(): string;
|
|
9
|
+
render(): import('lit').TemplateResult | typeof nothing;
|
|
10
|
+
}
|