@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 @@
|
|
|
1
|
+
{"version":3,"file":"marquee-section.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/marquee-section/marquee-section.ts"],"sourcesContent":["import { LitElement, html, nothing, type TemplateResult } from 'lit';\nimport { keyed } from 'lit/directives/keyed.js';\nimport { repeat } from 'lit/directives/repeat.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 { OS_LEADERBOARD_CASINO_MARQUEE } 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 type {\n OsLeaderboardCasinoMarqueeItem,\n OsLeaderboardCasinoMarqueeSection,\n} from '@os-leaderboard-casino/types/sections.js';\nimport { iconService } from '@os-leaderboard-casino/services/icon.service.js';\nimport { winIcon } from './components/win-icons.js';\nimport {\n formatWinAmount,\n parseMarqueeItem,\n type ParsedMarqueeWin,\n} from './marquee-item.js';\nimport {\n ACTIVE_MARQUEE_VARIANT,\n isMarqueeVariant,\n type MarqueeVariant,\n} from './marquee-variants.js';\nimport type { MarqueeSectionHost } from './marquee-section.host.js';\nimport renderTemplate from './marquee-section.html?lit-html';\nimport styles from './marquee-section.scss?inline';\n\ninterface FeedRow extends ParsedMarqueeWin {\n key: number;\n}\n\n/** Infinitely-scrolling winners ticker — v0 variant ports + classic fallback. */\n@Component({ selector: OS_LEADERBOARD_CASINO_MARQUEE })\nexport class OsLeaderboardCasinoMarquee\n extends LitElement\n implements MarqueeSectionHost\n{\n static styles = [osLeaderboardCasinoTheme, scss(styles)];\n\n @property({ attribute: false })\n section!: OsLeaderboardCasinoMarqueeSection;\n\n @property({ attribute: 'variant' })\n variant: MarqueeVariant = ACTIVE_MARQUEE_VARIANT;\n\n @state()\n private hudIndex = 0;\n\n @state()\n private feedRows: FeedRow[] = [];\n\n private hudTimer?: ReturnType<typeof setInterval>;\n private feedTimer?: ReturnType<typeof setInterval>;\n private feedCursor = 0;\n private feedKey = 0;\n\n get speedSec(): number {\n return this.section?.speedSec ?? 30;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.syncVariantAttribute();\n this.startVariantTimers();\n }\n\n updated(changed: Map<string, unknown>): void {\n if (changed.has('variant') || changed.has('section')) {\n this.syncVariantAttribute();\n this.stopVariantTimers();\n this.startVariantTimers();\n }\n }\n\n disconnectedCallback(): void {\n this.stopVariantTimers();\n super.disconnectedCallback();\n }\n\n private syncVariantAttribute(): void {\n const next = isMarqueeVariant(this.variant) ? this.variant : 'classic';\n this.dataset.variant = next;\n }\n\n private parsedWins(): ParsedMarqueeWin[] {\n return (this.section?.items ?? []).map((item, index) =>\n parseMarqueeItem(item, index),\n );\n }\n\n private startVariantTimers(): void {\n if (this.variant === 'hud') {\n this.hudIndex = 0;\n this.hudTimer = setInterval(() => {\n const count = this.section?.items?.length ?? 0;\n if (count > 1) this.hudIndex = (this.hudIndex + 1) % count;\n }, 3000);\n }\n\n if (this.variant === 'feed') {\n this.feedRows = [];\n this.feedCursor = 0;\n this.feedKey = 0;\n for (let i = 0; i < 4; i += 1) this.pushFeedRow(false);\n this.feedTimer = setInterval(() => this.pushFeedRow(true), 2600);\n }\n }\n\n private stopVariantTimers(): void {\n if (this.hudTimer) clearInterval(this.hudTimer);\n if (this.feedTimer) clearInterval(this.feedTimer);\n this.hudTimer = undefined;\n this.feedTimer = undefined;\n }\n\n private pushFeedRow(trim: boolean): void {\n const wins = this.parsedWins();\n if (!wins.length) return;\n const win = wins[this.feedCursor % wins.length];\n this.feedCursor += 1;\n const row: FeedRow = { ...win, key: this.feedKey++ };\n this.feedRows = trim\n ? [row, ...this.feedRows].slice(0, 4)\n : [row, ...this.feedRows];\n }\n\n private formatAmount(item: OsLeaderboardCasinoMarqueeItem): string {\n return formatWinAmount(item.amount ?? null, item.currency ?? 'USD');\n }\n\n private renderSeparator() {\n return html`<span class=\"sep\" aria-hidden=\"true\">·</span>`;\n }\n\n private renderItemIcon(win: ParsedMarqueeWin) {\n if (win.gameId) {\n const iconName = iconService.resolveGameIconName(win.gameId, 0);\n const url = iconService.get(iconName).url!;\n return html`<img src=${url} alt=${win.game} />`;\n }\n return winIcon(win.icon);\n }\n\n /** Uses shared VIP badge styles from theme (v0 outline tag). */\n private renderMarqueeUser(user: string, vip?: boolean) {\n return renderPlayerName(user, { vip });\n }\n\n private renderClassicItem(item: OsLeaderboardCasinoMarqueeItem, index: number) {\n const win = parseMarqueeItem(item, index);\n const amount = this.formatAmount(item);\n return html`\n <span class=\"item\">\n <span class=\"icon\">${this.renderItemIcon(win)}</span>\n <span class=\"txt\">\n ${this.renderMarqueeUser(win.user, win.vip)}\n <span class=\"verb\">won</span>\n ${item.amount != null\n ? html`<span class=\"amt\">${amount}</span>`\n : nothing}\n ${win.game\n ? html`\n <span class=\"tail\">\n <span class=\"on\">on</span>\n <span class=\"game\">${win.game}</span>\n </span>\n `\n : nothing}\n </span>\n </span>\n `;\n }\n\n private renderClassicGroup(items: OsLeaderboardCasinoMarqueeItem[]) {\n return html`\n <span class=\"group\" aria-hidden=\"true\">\n ${items.map(\n (item, index) => html`\n ${this.renderClassicItem(item, index)}${this.renderSeparator()}\n `,\n )}\n </span>\n `;\n }\n\n renderTrack(): TemplateResult {\n const items = this.section?.items ?? [];\n return html`${this.renderClassicGroup(items)}${this.renderClassicGroup(items)}`;\n }\n\n renderHudLabel(): TemplateResult | typeof nothing {\n return nothing;\n }\n\n private renderTickerWin(win: ParsedMarqueeWin) {\n const amount = formatWinAmount(win.amount, win.currency);\n return html`\n <span class=\"win ${win.big ? 'big' : ''}\">\n <span class=\"chip\">${this.renderItemIcon(win)}</span>\n <span class=\"txt\">\n ${this.renderMarqueeUser(win.user, win.vip)}\n <span class=\"verb\">won</span>\n ${amount ? html`<span class=\"amt\">${amount}</span>` : nothing}\n ${win.game\n ? html`\n <span class=\"tail\">\n <span class=\"on\">on</span>\n <span class=\"game\">${win.game}</span>\n </span>\n `\n : nothing}\n </span>\n </span>\n ${this.renderSeparator()}\n `;\n }\n\n private renderTicker() {\n const wins = this.parsedWins();\n const group = html`<div class=\"group\">\n ${wins.map((win) => this.renderTickerWin(win))}\n </div>`;\n return html`\n <div\n class=\"marquee\"\n style=\"--speed: ${this.speedSec}s\"\n role=\"region\"\n aria-label=\"Recent winners\"\n >\n <div class=\"track\">${group}${group}</div>\n </div>\n `;\n }\n\n private renderHudStreamGroup(wins: ParsedMarqueeWin[]) {\n return html`<div class=\"group\">\n ${wins.map(\n (win) => html`\n <span class=\"win ${win.vip ? 'vip' : ''}\">\n ${this.renderItemIcon(win)}${this.renderMarqueeUser(win.user, win.vip)}<span class=\"amt\">${formatWinAmount(win.amount, win.currency)}</span\n ><span class=\"sep-inline\">/</span><span class=\"game\">${win.game}</span>\n </span>\n `,\n )}\n </div>`;\n }\n\n private renderHud() {\n const wins = this.parsedWins();\n if (!wins.length) return nothing;\n const hero = wins[this.hudIndex] ?? wins[0];\n const group = this.renderHudStreamGroup(wins);\n\n return html`\n <div\n class=\"marquee\"\n style=\"--speed: ${this.speedSec}s\"\n role=\"region\"\n aria-label=\"Recent winners\"\n >\n <div class=\"hero\">\n <span class=\"badge\">Latest win</span>\n <span class=\"chip\">${this.renderItemIcon(hero)}</span>\n ${keyed(\n this.hudIndex,\n html`<span class=\"info\">\n <span class=\"who\">${this.renderMarqueeUser(hero.user, hero.vip)}</span>\n <span class=\"val\">${formatWinAmount(hero.amount, hero.currency)}</span>\n </span>`,\n )}\n </div>\n <div class=\"stream\">\n <div class=\"track\">${group}${group}</div>\n </div>\n </div>\n `;\n }\n\n private renderBeltGroup(wins: ParsedMarqueeWin[]) {\n return html`<div class=\"group\">\n ${wins.map(\n (win) => html`\n <span class=\"pill ${win.big ? 'big' : ''} ${win.vip ? 'vip' : ''}\">\n <span class=\"chip\">${this.renderItemIcon(win)}</span>\n ${this.renderMarqueeUser(win.user, win.vip)}\n <span class=\"game\">${win.game}</span>\n <span class=\"amt\">+${formatWinAmount(win.amount, win.currency)}</span>\n </span>\n `,\n )}\n </div>`;\n }\n\n private renderBelt() {\n const wins = this.parsedWins();\n const top = wins;\n const bottom = [...wins].reverse();\n const topGroup = this.renderBeltGroup(top);\n const bottomGroup = this.renderBeltGroup(bottom);\n\n return html`\n <div\n class=\"marquee\"\n style=\"--speed: ${this.speedSec}s\"\n role=\"region\"\n aria-label=\"Recent winners\"\n >\n <div class=\"lane lane-a\">${topGroup}${topGroup}</div>\n <div class=\"lane lane-b\">${bottomGroup}${bottomGroup}</div>\n </div>\n `;\n }\n\n private renderFeed() {\n return html`\n <div class=\"marquee feed-panel\" role=\"region\" aria-label=\"Recent winners\">\n <div class=\"head\">\n <span class=\"live\"><i></i> Live wins</span>\n <small>updating in real time</small>\n </div>\n <div class=\"list\">\n ${repeat(\n this.feedRows,\n (row) => row.key,\n (row) => html`\n <div class=\"row ${row.big ? 'big' : ''} ${row.vip ? 'vip' : ''}\">\n <span class=\"chip\">${this.renderItemIcon(row)}</span>\n <span class=\"meta\">\n ${this.renderMarqueeUser(row.user, row.vip)}\n <span class=\"game-line\">on ${row.game}</span>\n </span>\n <span class=\"amt\"\n >+${formatWinAmount(row.amount, row.currency)}</span\n >\n </div>\n `,\n )}\n </div>\n </div>\n `;\n }\n\n render() {\n const items = this.section?.items ?? [];\n if (!items.length) return nothing;\n\n switch (this.variant) {\n case 'ticker':\n return this.renderTicker();\n case 'hud':\n return this.renderHud();\n case 'belt':\n return this.renderBelt();\n case 'feed':\n return this.renderFeed();\n default:\n return renderTemplate(this);\n }\n }\n}\n"],"names":["OsLeaderboardCasinoMarquee","LitElement","ACTIVE_MARQUEE_VARIANT","changed","next","isMarqueeVariant","item","index","parseMarqueeItem","count","i","trim","wins","win","row","formatWinAmount","html","iconName","iconService","url","winIcon","user","vip","renderPlayerName","amount","nothing","items","group","hero","keyed","top","bottom","topGroup","bottomGroup","repeat","renderTemplate","osLeaderboardCasinoTheme","scss","styles","__decorateClass","property","state","Component","OS_LEADERBOARD_CASINO_MARQUEE"],"mappings":"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"}
|
package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.scss.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const a = '@charset "UTF-8";:host{display:block;width:100%}.marquee{position:relative;overflow:hidden}:host([data-variant=classic]) .marquee,:host(:not([data-variant])) .marquee{border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:var(--panel-bg);box-shadow:var(--panel-shadow)}:host([data-variant=classic]) .marquee:before,:host([data-variant=classic]) .marquee:after,:host(:not([data-variant])) .marquee:before,:host(:not([data-variant])) .marquee:after{content:"";position:absolute;top:0;bottom:0;width:56px;z-index:2;pointer-events:none}:host([data-variant=classic]) .marquee:before,:host(:not([data-variant])) .marquee:before{left:0;background:linear-gradient(90deg,var(--panel-fade-start),transparent)}:host([data-variant=classic]) .marquee:after,:host(:not([data-variant])) .marquee:after{right:0;background:linear-gradient(-90deg,var(--panel-fade-end),transparent)}:host([data-variant=classic]) .track,:host(:not([data-variant])) .track{display:flex;width:max-content;animation:scroll var(--speed, 30s) linear infinite}:host([data-variant=classic]) .group,:host(:not([data-variant])) .group{display:flex;align-items:center}:host([data-variant=classic]) .item,:host(:not([data-variant])) .item{display:inline-flex;align-items:center;gap:7px;padding:8px 0;white-space:nowrap;font-size:12px;color:var(--text-dim)}:host([data-variant=classic]) .item .txt,:host(:not([data-variant])) .item .txt{display:inline-flex;align-items:center;gap:.35em;line-height:1}:host([data-variant=classic]) .item .amt,:host(:not([data-variant])) .item .amt{font-family:var(--font-mono);font-weight:800;color:var(--gold-strong);text-shadow:0 0 12px var(--gold-glow)}:host([data-variant=classic]) .item .tail,:host(:not([data-variant])) .item .tail{display:inline-flex;align-items:center;gap:.35em}:host([data-variant=classic]) .item .icon img,:host(:not([data-variant])) .item .icon img{width:16px;height:16px;object-fit:contain;border-radius:3px;vertical-align:middle}:host([data-variant=classic]) .sep,:host(:not([data-variant])) .sep{margin:0 18px;font-size:10px;line-height:1;color:var(--text-faint);opacity:.5}:host([data-variant=ticker]) .marquee{border:1px solid var(--panel-border);border-radius:var(--radius-sm);background:var(--panel-bg);padding:10px 0;box-shadow:inset 0 1px #ffffff0d,var(--panel-shadow)}:host([data-variant=ticker]) .marquee:before,:host([data-variant=ticker]) .marquee:after{content:"";position:absolute;top:0;bottom:0;width:56px;z-index:2;pointer-events:none}:host([data-variant=ticker]) .marquee:before{left:0;background:linear-gradient(90deg,var(--panel-fade-start),transparent)}:host([data-variant=ticker]) .marquee:after{right:0;background:linear-gradient(-90deg,var(--panel-fade-end),transparent)}:host([data-variant=ticker]) .track{display:flex;align-items:center;width:max-content;animation:scroll var(--speed, 38s) linear infinite}:host([data-variant=ticker]) .group{display:flex;flex-shrink:0;align-items:center}:host([data-variant=ticker]) .win{display:inline-flex;align-items:center;gap:8px;padding:0 18px;white-space:nowrap}:host([data-variant=ticker]) .win .chip{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;color:var(--green);background:color-mix(in srgb,var(--green) 16%,transparent);flex-shrink:0}:host([data-variant=ticker]) .win.big .chip{color:var(--gold-strong);background:color-mix(in srgb,var(--gold) 18%,transparent)}:host([data-variant=ticker]) .win .chip svg{width:15px;height:15px}:host([data-variant=ticker]) .win .chip img{width:15px;height:15px;object-fit:contain;border-radius:3px}:host([data-variant=ticker]) .txt{display:inline-flex;align-items:center;gap:.35em;line-height:1;font-size:13px;color:var(--text)}:host([data-variant=ticker]) .txt .verb,:host([data-variant=ticker]) .txt .on{color:var(--text-dim)}:host([data-variant=ticker]) .txt .tail{display:inline-flex;align-items:center;gap:.35em}:host([data-variant=ticker]) .txt .player-name .name{font-weight:700}:host([data-variant=ticker]) .txt .game{color:var(--text-faint)}:host([data-variant=ticker]) .amt{font-family:var(--font-mono);font-weight:700;font-size:13px;color:var(--green)}:host([data-variant=ticker]) .win.big .amt{color:var(--gold-strong)}:host([data-variant=ticker]) .win.big .player-name:not(.is-vip) .name{color:var(--gold-strong)}:host([data-variant=ticker]) .sep{flex-shrink:0;align-self:center;margin:0 14px;font-size:10px;line-height:1;color:var(--text-faint);opacity:.5;user-select:none}:host([data-variant=hud]) .marquee{display:flex;align-items:stretch;gap:0;background:var(--panel-bg);border:1px solid color-mix(in srgb,var(--violet) 35%,var(--panel-border));clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);box-shadow:var(--panel-shadow),inset 0 0 30px color-mix(in srgb,var(--violet) 8%,transparent)}:host([data-variant=hud]) .hero{display:flex;align-items:center;gap:14px;padding:16px 22px;flex-shrink:0;background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 16%,transparent),transparent);border-right:1px solid color-mix(in srgb,var(--violet) 25%,transparent);position:relative}:host([data-variant=hud]) .hero .badge{position:absolute;top:8px;left:22px;font-size:9px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--violet) 80%,white)}:host([data-variant=hud]) .hero .chip{display:grid;place-items:center;width:40px;height:40px;color:var(--gold-strong);margin-top:10px}:host([data-variant=hud]) .hero .chip svg{width:32px;height:32px}:host([data-variant=hud]) .hero .chip img{width:32px;height:32px;object-fit:contain;border-radius:4px}:host([data-variant=hud]) .hero .info{display:flex;flex-direction:column;margin-top:12px;animation:flip .5s ease}:host([data-variant=hud]) .hero .who{font-size:13px;color:var(--text);font-weight:700}:host([data-variant=hud]) .hero .val{font-family:var(--font-mono);font-weight:800;font-size:22px;color:var(--gold-strong);line-height:1}:host([data-variant=hud]) .stream{position:relative;overflow:hidden;flex:1;display:flex;align-items:center}:host([data-variant=hud]) .stream:after{content:"";position:absolute;right:0;top:0;bottom:0;width:60px;background:linear-gradient(270deg,var(--panel-bg),transparent)}:host([data-variant=hud]) .track{display:flex;width:max-content;animation:scroll var(--speed, 32s) linear infinite}:host([data-variant=hud]) .group{display:flex;flex-shrink:0}:host([data-variant=hud]) .win{display:inline-flex;align-items:center;gap:8px;padding:0 18px;white-space:nowrap;font-size:13px;color:var(--text-faint)}:host([data-variant=hud]) .win svg{width:15px;height:15px;color:color-mix(in srgb,var(--violet) 75%,white)}:host([data-variant=hud]) .win .name,:host([data-variant=hud]) .win .player-name .name{color:var(--text)}:host([data-variant=hud]) .win .amt{font-family:var(--font-mono);font-weight:700;color:var(--gold-strong)}:host([data-variant=hud]) .win .sep{color:color-mix(in srgb,var(--violet) 50%,transparent)}:host([data-variant=belt]) .marquee{display:flex;flex-direction:column;gap:10px;padding:16px 0;border:1px solid var(--panel-border);border-radius:18px;background:linear-gradient(180deg,var(--panel-bg),var(--bg));box-shadow:var(--panel-shadow)}:host([data-variant=belt]) .marquee:before,:host([data-variant=belt]) .marquee:after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}:host([data-variant=belt]) .marquee:before{left:0;background:linear-gradient(90deg,var(--panel-bg),transparent)}:host([data-variant=belt]) .marquee:after{right:0;background:linear-gradient(270deg,var(--panel-bg),transparent)}:host([data-variant=belt]) .lane{display:flex;width:max-content}:host([data-variant=belt]) .lane-a{animation:scroll var(--speed, 40s) linear infinite}:host([data-variant=belt]) .lane-b{animation:scroll-reverse var(--speed, 40s) linear infinite}:host([data-variant=belt]) .group{display:flex;flex-shrink:0;gap:10px;padding-right:10px}:host([data-variant=belt]) .pill{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border-radius:999px;white-space:nowrap;background:#ffffff0a;border:1px solid var(--panel-border)}:host([data-variant=belt]) .pill.big{background:color-mix(in srgb,var(--gold) 12%,transparent);border-color:color-mix(in srgb,var(--gold) 35%,transparent)}:host([data-variant=belt]) .pill .chip{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;color:#46d18a;background:color-mix(in srgb,#46d18a 16%,transparent);flex-shrink:0}:host([data-variant=belt]) .pill.big .chip{color:var(--gold-strong);background:color-mix(in srgb,var(--gold) 20%,transparent)}:host([data-variant=belt]) .pill .chip svg{width:15px;height:15px}:host([data-variant=belt]) .pill .chip img{width:15px;height:15px;object-fit:contain;border-radius:3px}:host([data-variant=belt]) .pill .player-name .name{font-size:13px;font-weight:700;color:var(--text)}:host([data-variant=belt]) .pill .game{font-size:12px;color:var(--text-faint)}:host([data-variant=belt]) .pill .amt{font-family:var(--font-mono);font-weight:700;font-size:13px;color:#46d18a}:host([data-variant=belt]) .pill.big .amt{color:var(--gold-strong)}:host([data-variant=feed]) .feed-panel{border:1px solid var(--panel-border);border-radius:18px;background:linear-gradient(180deg,var(--panel-bg),var(--bg));padding:14px;box-shadow:var(--panel-shadow)}:host([data-variant=feed]) .head{display:flex;align-items:center;gap:8px;padding:2px 6px 12px}:host([data-variant=feed]) .live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.12em;color:#46d18a;text-transform:uppercase}:host([data-variant=feed]) .live i{width:7px;height:7px;border-radius:50%;background:#46d18a;box-shadow:0 0 color-mix(in srgb,#46d18a 70%,transparent);animation:pulse 1.6s infinite}:host([data-variant=feed]) .head small{color:var(--text-faint);font-size:12px}:host([data-variant=feed]) .list{display:flex;flex-direction:column;gap:8px;overflow:hidden}:host([data-variant=feed]) .row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:#ffffff08;border:1px solid var(--panel-border);animation:drop .5s cubic-bezier(.22,1,.36,1)}:host([data-variant=feed]) .row.big{background:color-mix(in srgb,var(--gold) 12%,transparent);border-color:color-mix(in srgb,var(--gold) 35%,transparent)}:host([data-variant=feed]) .row .chip{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;flex-shrink:0;color:#46d18a;background:color-mix(in srgb,#46d18a 16%,transparent)}:host([data-variant=feed]) .row.big .chip{color:var(--gold-strong);background:color-mix(in srgb,var(--gold) 20%,transparent)}:host([data-variant=feed]) .row .chip svg{width:20px;height:20px}:host([data-variant=feed]) .row .chip img{width:20px;height:20px;object-fit:contain;border-radius:4px}:host([data-variant=feed]) .meta{display:flex;flex-direction:column;min-width:0}:host([data-variant=feed]) .meta .player-name .name{font-size:14px;color:var(--text)}:host([data-variant=feed]) .meta .game-line{font-size:12px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host([data-variant=feed]) .amt{margin-left:auto;font-family:var(--font-mono);font-weight:700;font-size:15px;color:#46d18a}:host([data-variant=feed]) .row.big .amt{color:var(--gold-strong)}.marquee:hover .track,.marquee:hover .lane{animation-play-state:paused}@keyframes scroll{to{transform:translate(-50%)}}@keyframes scroll-reverse{0%{transform:translate(-50%)}to{transform:translate(0)}}@keyframes flip{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes drop{0%{opacity:0;transform:translateY(-14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{to{box-shadow:0 0 0 7px transparent}}@media(prefers-reduced-motion:reduce){.track,.lane{animation:none!important}:host([data-variant=hud]) .hero .info,:host([data-variant=feed]) .row,:host([data-variant=feed]) .live i{animation:none}}';
|
|
2
|
+
export {
|
|
3
|
+
a as default
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=marquee-section.scss.js.map
|
package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.scss.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marquee-section.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Visual treatments for the winners ticker (v0 + legacy). */
|
|
2
|
+
export declare const MARQUEE_VARIANTS: readonly ["classic", "ticker", "feed", "hud", "belt"];
|
|
3
|
+
export type MarqueeVariant = (typeof MARQUEE_VARIANTS)[number];
|
|
4
|
+
/** Active variant — v0 seamless ticker from `v0-components/marquee-section`. */
|
|
5
|
+
export declare const ACTIVE_MARQUEE_VARIANT: MarqueeVariant;
|
|
6
|
+
export declare function isMarqueeVariant(value: string): value is MarqueeVariant;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const t = [
|
|
2
|
+
"classic",
|
|
3
|
+
"ticker",
|
|
4
|
+
"feed",
|
|
5
|
+
"hud",
|
|
6
|
+
"belt"
|
|
7
|
+
], c = "ticker";
|
|
8
|
+
function i(e) {
|
|
9
|
+
return t.includes(e);
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
c as ACTIVE_MARQUEE_VARIANT,
|
|
13
|
+
t as MARQUEE_VARIANTS,
|
|
14
|
+
i as isMarqueeVariant
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=marquee-variants.js.map
|
package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marquee-variants.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/marquee-section/marquee-variants.ts"],"sourcesContent":["/** Visual treatments for the winners ticker (v0 + legacy). */\nexport const MARQUEE_VARIANTS = [\n 'classic',\n 'ticker',\n 'feed',\n 'hud',\n 'belt',\n] as const;\n\nexport type MarqueeVariant = (typeof MARQUEE_VARIANTS)[number];\n\n/** Active variant — v0 seamless ticker from `v0-components/marquee-section`. */\nexport const ACTIVE_MARQUEE_VARIANT: MarqueeVariant = 'ticker';\n\nexport function isMarqueeVariant(value: string): value is MarqueeVariant {\n return (MARQUEE_VARIANTS as readonly string[]).includes(value);\n}\n"],"names":["MARQUEE_VARIANTS","ACTIVE_MARQUEE_VARIANT","isMarqueeVariant","value"],"mappings":"AACO,MAAMA,IAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKaC,IAAyC;AAE/C,SAASC,EAAiBC,GAAwC;AACvE,SAAQH,EAAuC,SAASG,CAAK;AAC/D;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export type MedalCoinVariant = 'gold' | 'silver' | 'bronze';
|
|
3
|
+
/** Layered rank coin for podium slots — themed via glam CSS tokens. */
|
|
4
|
+
export declare class OsLeaderboardCasinoMedalCoin extends LitElement {
|
|
5
|
+
static styles: import('lit').CSSResult[];
|
|
6
|
+
variant: MedalCoinVariant;
|
|
7
|
+
rank: number;
|
|
8
|
+
/** Optional label override (defaults to rank number). */
|
|
9
|
+
label?: string;
|
|
10
|
+
/** Pixel diameter — also sets `--coin-size` on the host. */
|
|
11
|
+
size: number;
|
|
12
|
+
protected willUpdate(): void;
|
|
13
|
+
private get displayLabel();
|
|
14
|
+
private get medalAriaLabel();
|
|
15
|
+
render(): import('lit').TemplateResult<1>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { LitElement as c, svg as m, html as y } from "lit";
|
|
2
|
+
import { property as a } from "lit/decorators.js";
|
|
3
|
+
import { Component as f } from "../../../../../../shared/lib/lit/component.js";
|
|
4
|
+
import { scss as d } from "../../../../../../shared/lib/lit/scss.js";
|
|
5
|
+
import { OS_LEADERBOARD_CASINO_MEDAL_COIN as h } from "../../../../constants/tags.js";
|
|
6
|
+
import { osLeaderboardCasinoTheme as v } from "../../../../theme/styles.js";
|
|
7
|
+
import "lit/directives/unsafe-svg.js";
|
|
8
|
+
import b from "./medal-coin.scss.js";
|
|
9
|
+
var g = Object.defineProperty, x = Object.getOwnPropertyDescriptor, t = (i, o, l, s) => {
|
|
10
|
+
for (var e = s > 1 ? void 0 : s ? x(o, l) : o, p = i.length - 1, n; p >= 0; p--)
|
|
11
|
+
(n = i[p]) && (e = (s ? n(o, l, e) : n(e)) || e);
|
|
12
|
+
return s && e && g(o, l, e), e;
|
|
13
|
+
};
|
|
14
|
+
let r = class extends c {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments), this.variant = "gold", this.rank = 1, this.size = 52;
|
|
17
|
+
}
|
|
18
|
+
willUpdate() {
|
|
19
|
+
this.style.setProperty("--coin-size", `${this.size}px`);
|
|
20
|
+
}
|
|
21
|
+
get displayLabel() {
|
|
22
|
+
return this.label ?? String(this.rank);
|
|
23
|
+
}
|
|
24
|
+
get medalAriaLabel() {
|
|
25
|
+
return this.label ?? `Rank ${this.rank} medal`;
|
|
26
|
+
}
|
|
27
|
+
render() {
|
|
28
|
+
const i = this.displayLabel;
|
|
29
|
+
return y`
|
|
30
|
+
<svg viewBox="0 0 72 72" role="img" aria-label=${this.medalAriaLabel}>
|
|
31
|
+
<circle cx="36" cy="36" r="34" fill="var(--coin-edge)" />
|
|
32
|
+
<circle cx="36" cy="34" r="32" fill="var(--coin-face)" />
|
|
33
|
+
<circle
|
|
34
|
+
cx="36"
|
|
35
|
+
cy="34"
|
|
36
|
+
r="25"
|
|
37
|
+
fill="none"
|
|
38
|
+
stroke="var(--coin-ring)"
|
|
39
|
+
stroke-width="2"
|
|
40
|
+
opacity="0.55"
|
|
41
|
+
/>
|
|
42
|
+
${m`<text
|
|
43
|
+
class="rank-text"
|
|
44
|
+
x="36"
|
|
45
|
+
y="44"
|
|
46
|
+
text-anchor="middle"
|
|
47
|
+
>${i}</text>`}
|
|
48
|
+
</svg>
|
|
49
|
+
`;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
r.styles = [v, d(b)];
|
|
53
|
+
t([
|
|
54
|
+
a({ type: String, reflect: !0 })
|
|
55
|
+
], r.prototype, "variant", 2);
|
|
56
|
+
t([
|
|
57
|
+
a({ type: Number })
|
|
58
|
+
], r.prototype, "rank", 2);
|
|
59
|
+
t([
|
|
60
|
+
a({ type: String })
|
|
61
|
+
], r.prototype, "label", 2);
|
|
62
|
+
t([
|
|
63
|
+
a({ type: Number })
|
|
64
|
+
], r.prototype, "size", 2);
|
|
65
|
+
r = t([
|
|
66
|
+
f({ selector: h })
|
|
67
|
+
], r);
|
|
68
|
+
export {
|
|
69
|
+
r as OsLeaderboardCasinoMedalCoin
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=medal-coin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"medal-coin.js","sources":["../../../../../../../src/components/os-leaderboard-casino/sections/prize-section/components/medal-coin/medal-coin.ts"],"sourcesContent":["import { LitElement, html, svg } 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_MEDAL_COIN } from '@os-leaderboard-casino/constants/tags.js';\nimport { osLeaderboardCasinoTheme } from '@os-leaderboard-casino/theme/index.js';\nimport styles from './medal-coin.scss?inline';\n\nexport type MedalCoinVariant = 'gold' | 'silver' | 'bronze';\n\n/** Layered rank coin for podium slots — themed via glam CSS tokens. */\n@Component({ selector: OS_LEADERBOARD_CASINO_MEDAL_COIN })\nexport class OsLeaderboardCasinoMedalCoin extends LitElement {\n static styles = [osLeaderboardCasinoTheme, scss(styles)];\n\n @property({ type: String, reflect: true })\n variant: MedalCoinVariant = 'gold';\n\n @property({ type: Number })\n rank = 1;\n\n /** Optional label override (defaults to rank number). */\n @property({ type: String })\n label?: string;\n\n /** Pixel diameter — also sets `--coin-size` on the host. */\n @property({ type: Number })\n size = 52;\n\n protected override willUpdate(): void {\n this.style.setProperty('--coin-size', `${this.size}px`);\n }\n\n private get displayLabel(): string {\n return this.label ?? String(this.rank);\n }\n\n private get medalAriaLabel(): string {\n return this.label ?? `Rank ${this.rank} medal`;\n }\n\n render() {\n const text = this.displayLabel;\n return html`\n <svg viewBox=\"0 0 72 72\" role=\"img\" aria-label=${this.medalAriaLabel}>\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\n cx=\"36\"\n cy=\"34\"\n r=\"25\"\n fill=\"none\"\n stroke=\"var(--coin-ring)\"\n stroke-width=\"2\"\n opacity=\"0.55\"\n />\n ${svg`<text\n class=\"rank-text\"\n x=\"36\"\n y=\"44\"\n text-anchor=\"middle\"\n >${text}</text>`}\n </svg>\n `;\n }\n}\n"],"names":["OsLeaderboardCasinoMedalCoin","LitElement","text","html","svg","osLeaderboardCasinoTheme","scss","styles","__decorateClass","property","Component","OS_LEADERBOARD_CASINO_MEDAL_COIN"],"mappings":";;;;;;;;;;;;;AAYO,IAAMA,IAAN,cAA2CC,EAAW;AAAA,EAAtD,cAAA;AAAA,UAAA,GAAA,SAAA,GAIL,KAAA,UAA4B,QAG5B,KAAA,OAAO,GAQP,KAAA,OAAO;AAAA,EAAA;AAAA,EAEY,aAAmB;AACpC,SAAK,MAAM,YAAY,eAAe,GAAG,KAAK,IAAI,IAAI;AAAA,EACxD;AAAA,EAEA,IAAY,eAAuB;AACjC,WAAO,KAAK,SAAS,OAAO,KAAK,IAAI;AAAA,EACvC;AAAA,EAEA,IAAY,iBAAyB;AACnC,WAAO,KAAK,SAAS,QAAQ,KAAK,IAAI;AAAA,EACxC;AAAA,EAEA,SAAS;AACP,UAAMC,IAAO,KAAK;AAClB,WAAOC;AAAA,uDAC4C,KAAK,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAYhEC;AAAA;AAAA;AAAA;AAAA;AAAA,aAKGF,CAAI,SAAS;AAAA;AAAA;AAAA,EAGxB;AACF;AArDaF,EACJ,SAAS,CAACK,GAA0BC,EAAKC,CAAM,CAAC;AAGvDC,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAH9BT,EAIX,WAAA,WAAA,CAAA;AAGAQ,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GANfT,EAOX,WAAA,QAAA,CAAA;AAIAQ,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAVfT,EAWX,WAAA,SAAA,CAAA;AAIAQ,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAdfT,EAeX,WAAA,QAAA,CAAA;AAfWA,IAANQ,EAAA;AAAA,EADNE,EAAU,EAAE,UAAUC,EAAA,CAAkC;AAAA,GAC5CX,CAAA;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const o = ":host{display:inline-block;line-height:0;--coin-size: 52px}:host([variant=gold]){--coin-highlight: var(--gold-strong);--coin-face: var(--gold);--coin-edge: var(--gold-deep);--coin-ring: color-mix(in srgb, var(--gold-strong) 55%, transparent);--coin-shadow: drop-shadow(0 6px 16px rgba(0, 0, 0, .45));--coin-filter: drop-shadow(0 0 14px var(--gold-glow))}:host([variant=silver]){--coin-highlight: var(--silver);--coin-face: color-mix(in srgb, var(--silver) 78%, var(--surface-solid));--coin-edge: color-mix(in srgb, var(--silver) 52%, #5a6270);--coin-ring: color-mix(in srgb, var(--silver) 45%, transparent);--coin-shadow: drop-shadow(0 6px 14px rgba(0, 0, 0, .4));--coin-filter: none}:host([variant=bronze]){--coin-highlight: color-mix(in srgb, var(--bronze) 72%, #ffe8d4);--coin-face: var(--bronze);--coin-edge: color-mix(in srgb, var(--bronze) 62%, #6b4224);--coin-ring: color-mix(in srgb, var(--bronze) 45%, transparent);--coin-shadow: drop-shadow(0 6px 14px rgba(0, 0, 0, .4));--coin-filter: none}svg{display:block;width:var(--coin-size);height:var(--coin-size);filter:var(--coin-filter, var(--coin-shadow))}.rank-text{font-family:var(--font-display);font-size:calc(var(--coin-size) * .42 * var(--coin-text-scale, 1));font-weight:800;fill:#1a1208}";
|
|
2
|
+
export {
|
|
3
|
+
o as default
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=medal-coin.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"medal-coin.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LitElement, nothing } from 'lit';
|
|
2
|
+
import { OsLeaderboardCasinoPrizeSection } from '../../types/sections.js';
|
|
3
|
+
import { PrizeSectionHost } from './prize-section.host.js';
|
|
4
|
+
/** Top-3 metallic podium showcase + remaining prize tiers. */
|
|
5
|
+
export declare class OsLeaderboardCasinoPrize extends LitElement implements PrizeSectionHost {
|
|
6
|
+
static styles: import('lit').CSSResult[];
|
|
7
|
+
section: OsLeaderboardCasinoPrizeSection;
|
|
8
|
+
private restPrizes;
|
|
9
|
+
private secondPrize?;
|
|
10
|
+
private firstPrize?;
|
|
11
|
+
private thirdPrize?;
|
|
12
|
+
get sectionTitle(): string;
|
|
13
|
+
get showStrategy(): boolean;
|
|
14
|
+
get strategyLabel(): string;
|
|
15
|
+
get hasTierList(): boolean;
|
|
16
|
+
willUpdate(): void;
|
|
17
|
+
private onPrizeClick;
|
|
18
|
+
private formatValue;
|
|
19
|
+
private renderPodiumSlot;
|
|
20
|
+
renderPodium(): import('lit').TemplateResult<1>;
|
|
21
|
+
renderTierList(): import('lit').TemplateResult<1>;
|
|
22
|
+
render(): import('lit').TemplateResult | typeof nothing;
|
|
23
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TemplateResult } from 'lit';
|
|
2
|
+
import { OsLeaderboardCasinoPrizeSection } from '../../types/sections.js';
|
|
3
|
+
export interface PrizeSectionHost {
|
|
4
|
+
section: OsLeaderboardCasinoPrizeSection;
|
|
5
|
+
sectionTitle: string;
|
|
6
|
+
showStrategy: boolean;
|
|
7
|
+
strategyLabel: string;
|
|
8
|
+
renderPodium(): TemplateResult;
|
|
9
|
+
renderTierList(): TemplateResult;
|
|
10
|
+
hasTierList: boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { html as i } from "lit";
|
|
2
|
+
function t(e) {
|
|
3
|
+
return i`<section>
|
|
4
|
+
<div class="section-header">
|
|
5
|
+
<h2 class="section-title">${e.sectionTitle}</h2>
|
|
6
|
+
<span class="strategy" ?hidden=${!e.showStrategy}>${e.strategyLabel}</span>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
<div class="podium">${e.renderPodium()}</div>
|
|
10
|
+
|
|
11
|
+
<div class="list" ?hidden=${!e.hasTierList}>${e.renderTierList()}</div>
|
|
12
|
+
</section>
|
|
13
|
+
`;
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
t as default
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=prize-section.html.js.map
|
package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.html.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prize-section.html.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/prize-section/prize-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.sectionTitle}</h2>\n <span class=\"strategy\" ?hidden=${!host.showStrategy}>${host.strategyLabel}</span>\n </div>\n\n <div class=\"podium\">${host.renderPodium()}</div>\n\n <div class=\"list\" ?hidden=${!host.hasTierList}>${host.renderTierList()}</div>\n</section>\n`;\n}\n"],"names":["render","host","html"],"mappings":";AAGe,SAASA,EAAOC,GAAM;AACnC,SAAOC;AAAA;AAAA,gCAEuBD,EAAK,YAAY;AAAA,qCACZ,CAACA,EAAK,YAAY,IAAIA,EAAK,aAAa;AAAA;AAAA;AAAA,wBAGrDA,EAAK,cAAc;AAAA;AAAA,8BAEb,CAACA,EAAK,WAAW,IAAIA,EAAK,eAAc,CAAE;AAAA;AAAA;AAGxE;"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { LitElement as f, html as n, nothing as a } from "lit";
|
|
2
|
+
import { property as P } from "lit/decorators.js";
|
|
3
|
+
import { Component as p } from "../../../../shared/lib/lit/component.js";
|
|
4
|
+
import { scss as v } from "../../../../shared/lib/lit/scss.js";
|
|
5
|
+
import { DEFAULT_PRIZE_TITLE as b } from "../../constants/defaults.js";
|
|
6
|
+
import { OS_LEADERBOARD_CASINO_PRIZE as $ } from "../../constants/tags.js";
|
|
7
|
+
import { osLeaderboardCasinoTheme as g } from "../../theme/styles.js";
|
|
8
|
+
import { iconService as d } from "../../services/icon.service.js";
|
|
9
|
+
import { labelText as u } from "../../types/data.js";
|
|
10
|
+
import { OS_LEADERBOARD_CASINO_PRIZE_CLICK as k } from "../../types/events.js";
|
|
11
|
+
import "./components/medal-coin/medal-coin.js";
|
|
12
|
+
import S from "./prize-section.html.js";
|
|
13
|
+
import _ from "./prize-section.scss.js";
|
|
14
|
+
var y = Object.defineProperty, z = Object.getOwnPropertyDescriptor, h = (r, t, e, i) => {
|
|
15
|
+
for (var s = i > 1 ? void 0 : i ? z(t, e) : t, o = r.length - 1, c; o >= 0; o--)
|
|
16
|
+
(c = r[o]) && (s = (i ? c(t, e, s) : c(s)) || s);
|
|
17
|
+
return i && s && y(t, e, s), s;
|
|
18
|
+
};
|
|
19
|
+
function F(r) {
|
|
20
|
+
return r.rankFrom === r.rankTo ? `#${r.rankFrom}` : `#${r.rankFrom}–${r.rankTo}`;
|
|
21
|
+
}
|
|
22
|
+
function m(r, t) {
|
|
23
|
+
return r.find(
|
|
24
|
+
(e) => e.rankFrom === t && e.rankTo === t
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
function C(r) {
|
|
28
|
+
return r.filter(
|
|
29
|
+
(t) => !(t.rankFrom === t.rankTo && t.rankFrom >= 1 && t.rankFrom <= 3)
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
let l = class extends f {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(...arguments), this.restPrizes = [];
|
|
35
|
+
}
|
|
36
|
+
get sectionTitle() {
|
|
37
|
+
return this.section?.title ?? b;
|
|
38
|
+
}
|
|
39
|
+
get showStrategy() {
|
|
40
|
+
return !!this.section?.allocationStrategy;
|
|
41
|
+
}
|
|
42
|
+
get strategyLabel() {
|
|
43
|
+
return this.section?.allocationStrategy === "SPLIT_PRIZE" ? "Split Prize" : "Best Prize";
|
|
44
|
+
}
|
|
45
|
+
get hasTierList() {
|
|
46
|
+
return this.restPrizes.length > 0;
|
|
47
|
+
}
|
|
48
|
+
willUpdate() {
|
|
49
|
+
const r = this.section?.prizePackage?.prizes ?? [];
|
|
50
|
+
this.firstPrize = m(r, 1), this.secondPrize = m(r, 2), this.thirdPrize = m(r, 3), this.restPrizes = C(r).sort(
|
|
51
|
+
(t, e) => t.rankFrom - e.rankFrom
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
onPrizeClick(r) {
|
|
55
|
+
this.dispatchEvent(
|
|
56
|
+
new CustomEvent(k, {
|
|
57
|
+
detail: { prize: r },
|
|
58
|
+
bubbles: !0,
|
|
59
|
+
composed: !0
|
|
60
|
+
})
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
formatValue(r) {
|
|
64
|
+
if (r.value == null) return "";
|
|
65
|
+
try {
|
|
66
|
+
return new Intl.NumberFormat("en-US", {
|
|
67
|
+
style: "currency",
|
|
68
|
+
currency: r.currency ?? "USD",
|
|
69
|
+
maximumFractionDigits: 0
|
|
70
|
+
}).format(r.value);
|
|
71
|
+
} catch {
|
|
72
|
+
return `${r.value} ${r.currency ?? ""}`.trim();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
renderPodiumSlot(r, t) {
|
|
76
|
+
const e = {
|
|
77
|
+
first: "gold",
|
|
78
|
+
second: "silver",
|
|
79
|
+
third: "bronze"
|
|
80
|
+
}, i = { first: 1, second: 2, third: 3 }, s = {
|
|
81
|
+
first: "Champion",
|
|
82
|
+
second: "2nd place",
|
|
83
|
+
third: "3rd place"
|
|
84
|
+
}, o = t === "first" ? 68 : 52;
|
|
85
|
+
return n`
|
|
86
|
+
<button class="slot ${t}" @click=${() => this.onPrizeClick(r)}>
|
|
87
|
+
<div class="coin">
|
|
88
|
+
<os-leaderboard-casino-medal-coin
|
|
89
|
+
variant=${e[t]}
|
|
90
|
+
rank=${i[t]}
|
|
91
|
+
size=${o}
|
|
92
|
+
></os-leaderboard-casino-medal-coin>
|
|
93
|
+
</div>
|
|
94
|
+
<div class="place">${s[t]}</div>
|
|
95
|
+
<div class="name">${u(r.label)}</div>
|
|
96
|
+
<div class="value">${this.formatValue(r)}</div>
|
|
97
|
+
</button>
|
|
98
|
+
`;
|
|
99
|
+
}
|
|
100
|
+
renderPodium() {
|
|
101
|
+
return n`
|
|
102
|
+
${this.secondPrize ? this.renderPodiumSlot(this.secondPrize, "second") : a}
|
|
103
|
+
${this.firstPrize ? this.renderPodiumSlot(this.firstPrize, "first") : a}
|
|
104
|
+
${this.thirdPrize ? this.renderPodiumSlot(this.thirdPrize, "third") : a}
|
|
105
|
+
`;
|
|
106
|
+
}
|
|
107
|
+
renderTierList() {
|
|
108
|
+
return n`${this.restPrizes.map(
|
|
109
|
+
(r) => n`
|
|
110
|
+
<button class="tier" @click=${() => this.onPrizeClick(r)}>
|
|
111
|
+
<span class="icon">${d.get(d.resolvePrizeIconName(r.label)).svg()}</span>
|
|
112
|
+
<span class="info">
|
|
113
|
+
<span class="name">${u(r.label)}</span>
|
|
114
|
+
<span class="range">Rank ${F(r)}</span>
|
|
115
|
+
</span>
|
|
116
|
+
<span class="value">${this.formatValue(r)}</span>
|
|
117
|
+
</button>
|
|
118
|
+
`
|
|
119
|
+
)}`;
|
|
120
|
+
}
|
|
121
|
+
render() {
|
|
122
|
+
return (this.section?.prizePackage?.prizes ?? []).length ? S(this) : a;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
l.styles = [g, v(_)];
|
|
126
|
+
h([
|
|
127
|
+
P({ attribute: !1 })
|
|
128
|
+
], l.prototype, "section", 2);
|
|
129
|
+
l = h([
|
|
130
|
+
p({ selector: $ })
|
|
131
|
+
], l);
|
|
132
|
+
export {
|
|
133
|
+
l as OsLeaderboardCasinoPrize
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=prize-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prize-section.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/prize-section/prize-section.ts"],"sourcesContent":["import { LitElement, html, 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 { DEFAULT_PRIZE_TITLE } from '@os-leaderboard-casino/constants/defaults.js';\nimport { OS_LEADERBOARD_CASINO_PRIZE } from '@os-leaderboard-casino/constants/tags.js';\nimport { osLeaderboardCasinoTheme } from '@os-leaderboard-casino/theme/index.js';\nimport {\n labelText,\n type QuizPrize,\n} from '@os-leaderboard-casino/types/data.js';\nimport { iconService } from '@os-leaderboard-casino/services/icon.service.js';\nimport { OS_LEADERBOARD_CASINO_PRIZE_CLICK } from '@os-leaderboard-casino/types/events.js';\nimport type { OsLeaderboardCasinoPrizeSection } from '@os-leaderboard-casino/types/sections.js';\nimport type { PrizeSectionHost } from './prize-section.host.js';\nimport './components/medal-coin/medal-coin.js';\nimport renderTemplate from './prize-section.html?lit-html';\nimport styles from './prize-section.scss?inline';\n\nfunction rankRange(prize: QuizPrize): string {\n return prize.rankFrom === prize.rankTo\n ? `#${prize.rankFrom}`\n : `#${prize.rankFrom}–${prize.rankTo}`;\n}\n\nfunction podiumPrizeForRank(\n prizes: QuizPrize[],\n rank: 1 | 2 | 3,\n): QuizPrize | undefined {\n return prizes.find(\n (prize) => prize.rankFrom === rank && prize.rankTo === rank,\n );\n}\n\nfunction tierPrizesFrom(prizes: QuizPrize[]): QuizPrize[] {\n return prizes.filter(\n (prize) =>\n !(\n prize.rankFrom === prize.rankTo &&\n prize.rankFrom >= 1 &&\n prize.rankFrom <= 3\n ),\n );\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 = [osLeaderboardCasinoTheme, scss(styles)];\n\n @property({ attribute: false })\n section!: OsLeaderboardCasinoPrizeSection;\n\n private restPrizes: QuizPrize[] = [];\n private secondPrize?: QuizPrize;\n private firstPrize?: QuizPrize;\n private thirdPrize?: QuizPrize;\n\n get sectionTitle(): string {\n return this.section?.title ?? DEFAULT_PRIZE_TITLE;\n }\n\n get showStrategy(): boolean {\n return Boolean(this.section?.allocationStrategy);\n }\n\n get strategyLabel(): string {\n return this.section?.allocationStrategy === 'SPLIT_PRIZE'\n ? 'Split Prize'\n : 'Best Prize';\n }\n\n get hasTierList(): boolean {\n return this.restPrizes.length > 0;\n }\n\n willUpdate() {\n const prizes = this.section?.prizePackage?.prizes ?? [];\n this.firstPrize = podiumPrizeForRank(prizes, 1);\n this.secondPrize = podiumPrizeForRank(prizes, 2);\n this.thirdPrize = podiumPrizeForRank(prizes, 3);\n this.restPrizes = tierPrizesFrom(prizes).sort(\n (left, right) => left.rankFrom - right.rankFrom,\n );\n }\n\n private onPrizeClick(prize: QuizPrize) {\n this.dispatchEvent(\n new CustomEvent(OS_LEADERBOARD_CASINO_PRIZE_CLICK, {\n detail: { prize },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private formatValue(prize: QuizPrize): string {\n if (prize.value == null) return '';\n try {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: prize.currency ?? 'USD',\n maximumFractionDigits: 0,\n }).format(prize.value);\n } catch {\n return `${prize.value} ${prize.currency ?? ''}`.trim();\n }\n }\n\n private renderPodiumSlot(\n prize: QuizPrize,\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 };\n const labels = {\n first: 'Champion',\n second: '2nd place',\n third: '3rd place',\n };\n const coinSize = place === 'first' ? 68 : 52;\n return html`\n <button class=\"slot ${place}\" @click=${() => this.onPrizeClick(prize)}>\n <div class=\"coin\">\n <os-leaderboard-casino-medal-coin\n variant=${variants[place]}\n rank=${ranks[place]}\n size=${coinSize}\n ></os-leaderboard-casino-medal-coin>\n </div>\n <div class=\"place\">${labels[place]}</div>\n <div class=\"name\">${labelText(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\">${iconService.get(iconService.resolvePrizeIconName(prize.label)).svg()}</span>\n <span class=\"info\">\n <span class=\"name\">${labelText(prize.label)}</span>\n <span class=\"range\">Rank ${rankRange(prize)}</span>\n </span>\n <span class=\"value\">${this.formatValue(prize)}</span>\n </button>\n `,\n )}`;\n }\n\n render() {\n const prizes = this.section?.prizePackage?.prizes ?? [];\n if (!prizes.length) return nothing;\n return renderTemplate(this);\n }\n}\n"],"names":["rankRange","prize","podiumPrizeForRank","prizes","rank","tierPrizesFrom","OsLeaderboardCasinoPrize","LitElement","DEFAULT_PRIZE_TITLE","left","right","OS_LEADERBOARD_CASINO_PRIZE_CLICK","place","variants","ranks","labels","coinSize","html","labelText","nothing","iconService","renderTemplate","osLeaderboardCasinoTheme","scss","styles","__decorateClass","property","Component","OS_LEADERBOARD_CASINO_PRIZE"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const o = '@charset "UTF-8";:host{display:block;width:100%}.strategy{font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:var(--violet-soft);border:1px solid color-mix(in srgb,var(--violet) 40%,transparent);color:#c9adff}.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}.slot{position:relative;overflow:hidden;border-radius:var(--radius-sm);padding:16px 12px 14px;text-align:center;border:1px solid var(--panel-border);background:var(--panel-bg);box-shadow:var(--panel-shadow);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.slot:hover{transform:translateY(-3px)}.slot.first{order:2;padding-top:22px;padding-bottom:20px;border-color:var(--panel-border);background:radial-gradient(120% 90% at 50% -10%,color-mix(in srgb,var(--gold) 18%,transparent),transparent 60%),var(--panel-bg);box-shadow:var(--panel-shadow)}.slot.second{order:1;border-color:var(--panel-border);background:var(--panel-bg)}.slot.third{order:3;border-color:var(--panel-border);background:var(--panel-bg)}.coin{display:flex;justify-content:center;min-height:52px}.slot.first .coin{min-height:68px}.place{margin-top:7px;font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint)}.slot.first .place{color:var(--gold)}.slot.second .place{color:var(--silver)}.slot.third .place{color:var(--bronze)}.slot .name{margin-top:5px;font-size:12px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot .value{margin-top:6px;font-family:var(--font-mono);font-size:16px;font-weight:800;color:var(--gold-strong)}.slot.first .value{font-size:20px;text-shadow:0 0 18px var(--gold-glow)}.list{display:flex;flex-direction:column;gap:7px;margin-top:10px}.tier{display:flex;align-items:center;gap:12px;width:100%;text-align:left;font-family:var(--font-body);padding:11px 14px;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius-sm);box-shadow:var(--panel-shadow);transition:border-color var(--transition-fast)}.tier:hover{border-color:var(--hairline-gold)}.tier .icon{flex:none;display:grid;place-items:center;line-height:0}.tier .icon svg{width:28px;height:28px}.tier .info{flex:1;min-width:0}.tier .name{font-size:13px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tier .range{margin-top:1px;font-size:11px;color:var(--text-dim)}.tier .value{flex:none;font-family:var(--font-mono);font-size:13.5px;font-weight:700;color:var(--gold)}@media(max-width:480px){.slot .value{font-size:13.5px}.slot.first .value{font-size:16px}}';
|
|
2
|
+
export {
|
|
3
|
+
o as default
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=prize-section.scss.js.map
|
package/dist/components/os-leaderboard-casino/sections/prize-section/prize-section.scss.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prize-section.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { statIcons } from '../stat-icons.js';
|
|
3
|
+
export type StatBandAccent = 'participants' | 'prizes' | 'ends';
|
|
4
|
+
export type StatBandIcon = keyof typeof statIcons;
|
|
5
|
+
export type StatBandSegment = 'solo' | 'start' | 'middle' | 'end';
|
|
6
|
+
/** Centered KPI band — accent stripe, icon ring, stacked value + label. */
|
|
7
|
+
export declare class OsLeaderboardCasinoStatBand extends LitElement {
|
|
8
|
+
static styles: import('lit').CSSResult[];
|
|
9
|
+
accent: StatBandAccent;
|
|
10
|
+
icon: StatBandIcon;
|
|
11
|
+
value: string;
|
|
12
|
+
label: string;
|
|
13
|
+
segment: StatBandSegment;
|
|
14
|
+
compact: boolean;
|
|
15
|
+
highlight: boolean;
|
|
16
|
+
render(): import('lit').TemplateResult<1>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { statIcons } from '../stat-icons.js';
|
|
3
|
+
export type StatCardAccent = 'participants' | 'prizes' | 'ends';
|
|
4
|
+
export type StatCardIcon = keyof typeof statIcons;
|
|
5
|
+
/** Classic glow stat tile — rounded glass cards with soft accent wash. */
|
|
6
|
+
export declare class OsLeaderboardCasinoStatCard extends LitElement {
|
|
7
|
+
static styles: import('lit').CSSResult[];
|
|
8
|
+
accent: StatCardAccent;
|
|
9
|
+
icon: StatCardIcon;
|
|
10
|
+
value: string;
|
|
11
|
+
label: string;
|
|
12
|
+
compact: boolean;
|
|
13
|
+
glow: boolean;
|
|
14
|
+
render(): import('lit').TemplateResult<1>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { statIcons } from '../stat-icons.js';
|
|
3
|
+
export type StatChipAccent = 'participants' | 'prizes' | 'ends';
|
|
4
|
+
export type StatChipIcon = keyof typeof statIcons;
|
|
5
|
+
export type StatChipSegment = 'solo' | 'start' | 'middle' | 'end';
|
|
6
|
+
/** Compact chip readout — inline icon + value, label tucked below. */
|
|
7
|
+
export declare class OsLeaderboardCasinoStatChip extends LitElement {
|
|
8
|
+
static styles: import('lit').CSSResult[];
|
|
9
|
+
accent: StatChipAccent;
|
|
10
|
+
icon: StatChipIcon;
|
|
11
|
+
value: string;
|
|
12
|
+
label: string;
|
|
13
|
+
segment: StatChipSegment;
|
|
14
|
+
compact: boolean;
|
|
15
|
+
highlight: boolean;
|
|
16
|
+
render(): import('lit').TemplateResult<1>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { statIcons } from '../stat-icons.js';
|
|
3
|
+
export type StatGaugeAccent = 'participants' | 'prizes' | 'ends';
|
|
4
|
+
export type StatGaugeIcon = keyof typeof statIcons;
|
|
5
|
+
/** Telemetry gauge tile — variant B stat readout from v0 stat-strip. */
|
|
6
|
+
export declare class OsLeaderboardCasinoStatGauge extends LitElement {
|
|
7
|
+
static styles: import('lit').CSSResult[];
|
|
8
|
+
accent: StatGaugeAccent;
|
|
9
|
+
icon: StatGaugeIcon;
|
|
10
|
+
value: string;
|
|
11
|
+
label: string;
|
|
12
|
+
compact: boolean;
|
|
13
|
+
render(): import('lit').TemplateResult<1>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { iconService as t } from "../../../services/icon.service.js";
|
|
2
|
+
const o = {
|
|
3
|
+
users: () => t.svg("stat.users"),
|
|
4
|
+
gift: () => t.svg("stat.gift"),
|
|
5
|
+
clock: () => t.svg("stat.clock"),
|
|
6
|
+
trophy: () => t.svg("win.trophy")
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
o as statIcons
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=stat-icons.js.map
|
package/dist/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stat-icons.js","sources":["../../../../../../src/components/os-leaderboard-casino/sections/stats-section/components/stat-icons.ts"],"sourcesContent":["import { iconService } from '@os-leaderboard-casino/services/icon.service.js';\nimport type { TemplateResult } from 'lit';\n\nexport type StatIconName = 'users' | 'gift' | 'clock' | 'trophy';\n\ntype IconFn = () => TemplateResult;\n\nexport const statIcons: Record<StatIconName, IconFn> = {\n users: () => iconService.svg('stat.users'),\n gift: () => iconService.svg('stat.gift'),\n clock: () => iconService.svg('stat.clock'),\n trophy: () => iconService.svg('win.trophy'),\n};\n"],"names":["statIcons","iconService"],"mappings":";AAOO,MAAMA,IAA0C;AAAA,EACrD,OAAO,MAAMC,EAAY,IAAI,YAAY;AAAA,EACzC,MAAM,MAAMA,EAAY,IAAI,WAAW;AAAA,EACvC,OAAO,MAAMA,EAAY,IAAI,YAAY;AAAA,EACzC,QAAQ,MAAMA,EAAY,IAAI,YAAY;AAC5C;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { statIcons } from '../stat-icons.js';
|
|
3
|
+
export type StatMeterAccent = 'participants' | 'prizes' | 'ends';
|
|
4
|
+
export type StatMeterIcon = keyof typeof statIcons;
|
|
5
|
+
export type StatMeterSegment = 'solo' | 'start' | 'middle' | 'end';
|
|
6
|
+
/** Meter readout — label + value with animated accent fill bar. */
|
|
7
|
+
export declare class OsLeaderboardCasinoStatMeter extends LitElement {
|
|
8
|
+
static styles: import('lit').CSSResult[];
|
|
9
|
+
accent: StatMeterAccent;
|
|
10
|
+
icon: StatMeterIcon;
|
|
11
|
+
value: string;
|
|
12
|
+
label: string;
|
|
13
|
+
segment: StatMeterSegment;
|
|
14
|
+
compact: boolean;
|
|
15
|
+
highlight: boolean;
|
|
16
|
+
render(): import('lit').TemplateResult<1>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { statIcons } from '../stat-icons.js';
|
|
3
|
+
export type StatRailAccent = 'participants' | 'prizes' | 'ends' | 'biggestWin';
|
|
4
|
+
export type StatRailIcon = keyof typeof statIcons;
|
|
5
|
+
export type StatRailSegment = 'solo' | 'start' | 'middle' | 'end';
|
|
6
|
+
/** Horizontal rail segment — icon well + label/value with accent shimmer. */
|
|
7
|
+
export declare class OsLeaderboardCasinoStatRail extends LitElement {
|
|
8
|
+
static styles: import('lit').CSSResult[];
|
|
9
|
+
accent: StatRailAccent;
|
|
10
|
+
icon: StatRailIcon;
|
|
11
|
+
value: string;
|
|
12
|
+
label: string;
|
|
13
|
+
segment: StatRailSegment;
|
|
14
|
+
compact: boolean;
|
|
15
|
+
highlight: boolean;
|
|
16
|
+
render(): import('lit').TemplateResult<1>;
|
|
17
|
+
}
|