@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,49 @@
|
|
|
1
|
+
class i {
|
|
2
|
+
toLayout(a) {
|
|
3
|
+
return this.buildLayout(a.config, a.sections);
|
|
4
|
+
}
|
|
5
|
+
applyThemeVars(a, e) {
|
|
6
|
+
const r = e.config.themeVars ?? {};
|
|
7
|
+
for (const t of Object.keys(r))
|
|
8
|
+
a.style.removeProperty(t);
|
|
9
|
+
for (const [t, l] of Object.entries(r))
|
|
10
|
+
a.style.setProperty(t, l);
|
|
11
|
+
}
|
|
12
|
+
buildLayout(a, e) {
|
|
13
|
+
const r = {
|
|
14
|
+
mainOrder: this.mainOrder(a)
|
|
15
|
+
};
|
|
16
|
+
if (this.isEnabled(a, "marquee") && e.marquee && (r.marquee = e.marquee), this.isEnabled(a, "events") && e.events && (r.eventsBanner = e.events), this.isEnabled(a, "hero") && e.hero) {
|
|
17
|
+
const { endTs: t, ...l } = e.hero;
|
|
18
|
+
r.hero = {
|
|
19
|
+
...l,
|
|
20
|
+
...t != null ? { endTs: String(t) } : {}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return this.isEnabled(a, "prize") && e.prize && (r.prize = {
|
|
24
|
+
title: e.prize.title,
|
|
25
|
+
prizePackage: e.prize.prizePackage,
|
|
26
|
+
allocationStrategy: e.prize.allocationStrategy
|
|
27
|
+
}), this.isEnabled(a, "stats") && e.stats && (r.stats = e.stats), this.isEnabled(a, "games") && e.games && (r.games = {
|
|
28
|
+
title: e.games.title,
|
|
29
|
+
games: e.games.games ?? e.games.items ?? []
|
|
30
|
+
}), this.isEnabled(a, "climb") && e.climb && (r.climb = e.climb), this.isEnabled(a, "table") && e.table?.mode === "preview" && (r.table = {
|
|
31
|
+
topPlayers: e.table.topPlayers ?? [],
|
|
32
|
+
currentUser: e.table.currentUser,
|
|
33
|
+
ctaLabel: e.table.ctaLabel ?? a.labels?.cta,
|
|
34
|
+
prizes: e.prize?.prizePackage?.prizes
|
|
35
|
+
}), this.isEnabled(a, "footer") && e.footer && (r.footer = e.footer), this.isEnabled(a, "legals") && e.legals && (r.legals = e.legals), r;
|
|
36
|
+
}
|
|
37
|
+
isEnabled(a, e) {
|
|
38
|
+
return a.enabled.includes(e);
|
|
39
|
+
}
|
|
40
|
+
mainOrder(a) {
|
|
41
|
+
return (a.mainOrder ?? ["prize", "stats", "games", "climb", "table"]).filter((r) => this.isEnabled(a, r));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const m = new i();
|
|
45
|
+
export {
|
|
46
|
+
i as AdapterService,
|
|
47
|
+
m as adapterService
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=adapter.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.service.js","sources":["../../../../src/components/os-leaderboard-casino/services/adapter.service.ts"],"sourcesContent":["import type { OsLeaderboardCasinoLayout } from '@os-leaderboard-casino/types/sections.js';\nimport type {\n OsLeaderboardCasinoConfig,\n OsLeaderboardCasinoMainSectionId,\n OsLeaderboardCasinoSectionData,\n OsLeaderboardCasinoSectionId,\n OsLeaderboardCasinoState,\n} from '../types/state.js';\n\n/** Maps facade state into the glam layout shell. */\nexport class AdapterService {\n toLayout(state: OsLeaderboardCasinoState): OsLeaderboardCasinoLayout {\n return this.buildLayout(state.config, state.sections);\n }\n\n applyThemeVars(\n host: HTMLElement,\n state: OsLeaderboardCasinoState,\n ): void {\n const vars = state.config.themeVars ?? {};\n for (const name of Object.keys(vars)) {\n host.style.removeProperty(name);\n }\n for (const [name, value] of Object.entries(vars)) {\n host.style.setProperty(name, value);\n }\n }\n\n private buildLayout(\n config: OsLeaderboardCasinoConfig,\n sections: OsLeaderboardCasinoSectionData,\n ): OsLeaderboardCasinoLayout {\n const layout: OsLeaderboardCasinoLayout = {\n mainOrder: this.mainOrder(config),\n };\n\n if (this.isEnabled(config, 'marquee') && sections.marquee) {\n layout.marquee = sections.marquee;\n }\n if (this.isEnabled(config, 'events') && sections.events) {\n layout.eventsBanner = sections.events;\n }\n if (this.isEnabled(config, 'hero') && sections.hero) {\n const { endTs, ...hero } = sections.hero;\n layout.hero = {\n ...hero,\n ...(endTs != null ? { endTs: String(endTs) } : {}),\n };\n }\n if (this.isEnabled(config, 'prize') && sections.prize) {\n layout.prize = {\n title: sections.prize.title,\n prizePackage: sections.prize.prizePackage,\n allocationStrategy: sections.prize.allocationStrategy,\n };\n }\n if (this.isEnabled(config, 'stats') && sections.stats) {\n layout.stats = sections.stats;\n }\n if (this.isEnabled(config, 'games') && sections.games) {\n layout.games = {\n title: sections.games.title,\n games: sections.games.games ?? sections.games.items ?? [],\n };\n }\n if (this.isEnabled(config, 'climb') && sections.climb) {\n layout.climb = sections.climb;\n }\n if (this.isEnabled(config, 'table') && sections.table?.mode === 'preview') {\n layout.table = {\n topPlayers: sections.table.topPlayers ?? [],\n currentUser: sections.table.currentUser,\n ctaLabel: sections.table.ctaLabel ?? config.labels?.cta,\n prizes: sections.prize?.prizePackage?.prizes,\n };\n }\n if (this.isEnabled(config, 'footer') && sections.footer) {\n layout.footer = sections.footer;\n }\n if (this.isEnabled(config, 'legals') && sections.legals) {\n layout.legals = sections.legals;\n }\n\n return layout;\n }\n\n private isEnabled(\n config: OsLeaderboardCasinoConfig,\n id: OsLeaderboardCasinoSectionId,\n ): boolean {\n return config.enabled.includes(id);\n }\n\n private mainOrder(\n config: OsLeaderboardCasinoConfig,\n ): OsLeaderboardCasinoMainSectionId[] {\n const order =\n config.mainOrder ?? ['prize', 'stats', 'games', 'climb', 'table'];\n return order.filter((id) => this.isEnabled(config, id));\n }\n}\n\nexport const adapterService = new AdapterService();\n"],"names":["AdapterService","state","host","vars","name","value","config","sections","layout","endTs","hero","id","adapterService"],"mappings":"AAUO,MAAMA,EAAe;AAAA,EAC1B,SAASC,GAA4D;AACnE,WAAO,KAAK,YAAYA,EAAM,QAAQA,EAAM,QAAQ;AAAA,EACtD;AAAA,EAEA,eACEC,GACAD,GACM;AACN,UAAME,IAAOF,EAAM,OAAO,aAAa,CAAA;AACvC,eAAWG,KAAQ,OAAO,KAAKD,CAAI;AACjC,MAAAD,EAAK,MAAM,eAAeE,CAAI;AAEhC,eAAW,CAACA,GAAMC,CAAK,KAAK,OAAO,QAAQF,CAAI;AAC7C,MAAAD,EAAK,MAAM,YAAYE,GAAMC,CAAK;AAAA,EAEtC;AAAA,EAEQ,YACNC,GACAC,GAC2B;AAC3B,UAAMC,IAAoC;AAAA,MACxC,WAAW,KAAK,UAAUF,CAAM;AAAA,IAAA;AASlC,QANI,KAAK,UAAUA,GAAQ,SAAS,KAAKC,EAAS,YAChDC,EAAO,UAAUD,EAAS,UAExB,KAAK,UAAUD,GAAQ,QAAQ,KAAKC,EAAS,WAC/CC,EAAO,eAAeD,EAAS,SAE7B,KAAK,UAAUD,GAAQ,MAAM,KAAKC,EAAS,MAAM;AACnD,YAAM,EAAE,OAAAE,GAAO,GAAGC,EAAA,IAASH,EAAS;AACpC,MAAAC,EAAO,OAAO;AAAA,QACZ,GAAGE;AAAA,QACH,GAAID,KAAS,OAAO,EAAE,OAAO,OAAOA,CAAK,MAAM,CAAA;AAAA,MAAC;AAAA,IAEpD;AACA,WAAI,KAAK,UAAUH,GAAQ,OAAO,KAAKC,EAAS,UAC9CC,EAAO,QAAQ;AAAA,MACb,OAAOD,EAAS,MAAM;AAAA,MACtB,cAAcA,EAAS,MAAM;AAAA,MAC7B,oBAAoBA,EAAS,MAAM;AAAA,IAAA,IAGnC,KAAK,UAAUD,GAAQ,OAAO,KAAKC,EAAS,UAC9CC,EAAO,QAAQD,EAAS,QAEtB,KAAK,UAAUD,GAAQ,OAAO,KAAKC,EAAS,UAC9CC,EAAO,QAAQ;AAAA,MACb,OAAOD,EAAS,MAAM;AAAA,MACtB,OAAOA,EAAS,MAAM,SAASA,EAAS,MAAM,SAAS,CAAA;AAAA,IAAC,IAGxD,KAAK,UAAUD,GAAQ,OAAO,KAAKC,EAAS,UAC9CC,EAAO,QAAQD,EAAS,QAEtB,KAAK,UAAUD,GAAQ,OAAO,KAAKC,EAAS,OAAO,SAAS,cAC9DC,EAAO,QAAQ;AAAA,MACb,YAAYD,EAAS,MAAM,cAAc,CAAA;AAAA,MACzC,aAAaA,EAAS,MAAM;AAAA,MAC5B,UAAUA,EAAS,MAAM,YAAYD,EAAO,QAAQ;AAAA,MACpD,QAAQC,EAAS,OAAO,cAAc;AAAA,IAAA,IAGtC,KAAK,UAAUD,GAAQ,QAAQ,KAAKC,EAAS,WAC/CC,EAAO,SAASD,EAAS,SAEvB,KAAK,UAAUD,GAAQ,QAAQ,KAAKC,EAAS,WAC/CC,EAAO,SAASD,EAAS,SAGpBC;AAAA,EACT;AAAA,EAEQ,UACNF,GACAK,GACS;AACT,WAAOL,EAAO,QAAQ,SAASK,CAAE;AAAA,EACnC;AAAA,EAEQ,UACNL,GACoC;AAGpC,YADEA,EAAO,aAAa,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO,GACrD,OAAO,CAACK,MAAO,KAAK,UAAUL,GAAQK,CAAE,CAAC;AAAA,EACxD;AACF;AAEO,MAAMC,IAAiB,IAAIZ,EAAA;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { LabelKey } from '../types/data.js';
|
|
2
|
+
import { GameIconName, IconHandle, IconRenderOptions, PrizeIconName, StatIconName, WinIconName } from '../types/icons.js';
|
|
3
|
+
import { TemplateResult } from 'lit';
|
|
4
|
+
export type { GameIconName, IconHandle, IconName, IconRenderOptions, PrizeIconName, StatIconName, WinIconName, } from '../types/icons.js';
|
|
5
|
+
/** Registry-backed icon loader for os-leaderboard-casino. */
|
|
6
|
+
export declare class IconService {
|
|
7
|
+
private readonly registry;
|
|
8
|
+
private loadPromise;
|
|
9
|
+
private loaded;
|
|
10
|
+
/** Load all bundled SVG and game image icons. Call once on app start. */
|
|
11
|
+
load(): Promise<void>;
|
|
12
|
+
/** Pick a loaded icon by registry name, e.g. `prize.free-spins`. */
|
|
13
|
+
get(name: string): IconHandle;
|
|
14
|
+
has(name: string): boolean;
|
|
15
|
+
resolvePrizeIconName(label: LabelKey | string | undefined): PrizeIconName;
|
|
16
|
+
resolveGameIconName(id: string, index: number): GameIconName;
|
|
17
|
+
resolveWinIconName(name: string, index: number): WinIconName;
|
|
18
|
+
resolveStatIconName(name: string): StatIconName;
|
|
19
|
+
render(name: string, options?: IconRenderOptions): TemplateResult;
|
|
20
|
+
svg(name: string): TemplateResult;
|
|
21
|
+
url(name: string): string;
|
|
22
|
+
private assertLoaded;
|
|
23
|
+
}
|
|
24
|
+
export declare const iconService: IconService;
|
|
25
|
+
export declare function prizeIconSvg(label: LabelKey | string | undefined): TemplateResult;
|
|
26
|
+
export declare function renderPrizeIcon(label: LabelKey | string | undefined, className?: string): TemplateResult;
|
|
27
|
+
export declare function resolveGameImage(id: string, index: number): string;
|
|
28
|
+
export declare function winIcon(name: string): TemplateResult;
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import c from "../assets/icons/prize.casino-credits.svg.js";
|
|
2
|
+
import m from "../assets/icons/prize.default.svg.js";
|
|
3
|
+
import g from "../assets/icons/prize.elite-bonus.svg.js";
|
|
4
|
+
import l from "../assets/icons/prize.free-spins.svg.js";
|
|
5
|
+
import _ from "../assets/icons/prize.grand-jackpot.svg.js";
|
|
6
|
+
import u from "../assets/icons/prize.high-roller.svg.js";
|
|
7
|
+
import p from "../assets/icons/prize.mystery-bonus.svg.js";
|
|
8
|
+
import f from "../assets/icons/stat.clock.svg.js";
|
|
9
|
+
import v from "../assets/icons/stat.gift.svg.js";
|
|
10
|
+
import d from "../assets/icons/stat.users.svg.js";
|
|
11
|
+
import h from "../assets/icons/table.rank-down.svg.js";
|
|
12
|
+
import b from "../assets/icons/table.rank-neutral.svg.js";
|
|
13
|
+
import w from "../assets/icons/table.rank-up.svg.js";
|
|
14
|
+
import y from "../assets/icons/vip.crown.svg.js";
|
|
15
|
+
import I from "../assets/icons/win.bag.svg.js";
|
|
16
|
+
import k from "../assets/icons/win.bolt.svg.js";
|
|
17
|
+
import z from "../assets/icons/win.coin.svg.js";
|
|
18
|
+
import S from "../assets/icons/win.fire.svg.js";
|
|
19
|
+
import $ from "../assets/icons/win.gem.svg.js";
|
|
20
|
+
import N from "../assets/icons/win.trophy.svg.js";
|
|
21
|
+
import { html as o } from "lit";
|
|
22
|
+
import { unsafeSVG as n } from "lit/directives/unsafe-svg.js";
|
|
23
|
+
import { labelText as O } from "../types/data.js";
|
|
24
|
+
import E from "../assets/images/games/cards.png.js";
|
|
25
|
+
import L from "../assets/images/games/chips.png.js";
|
|
26
|
+
import P from "../assets/images/games/dice.png.js";
|
|
27
|
+
import j from "../assets/images/games/gates-of-olympus.png.js";
|
|
28
|
+
import G from "../assets/images/games/roulette.png.js";
|
|
29
|
+
import C from "../assets/images/games/slot-machine.png.js";
|
|
30
|
+
const M = /* @__PURE__ */ Object.assign({
|
|
31
|
+
"../assets/icons/prize.casino-credits.svg": c,
|
|
32
|
+
"../assets/icons/prize.default.svg": m,
|
|
33
|
+
"../assets/icons/prize.elite-bonus.svg": g,
|
|
34
|
+
"../assets/icons/prize.free-spins.svg": l,
|
|
35
|
+
"../assets/icons/prize.grand-jackpot.svg": _,
|
|
36
|
+
"../assets/icons/prize.high-roller.svg": u,
|
|
37
|
+
"../assets/icons/prize.mystery-bonus.svg": p,
|
|
38
|
+
"../assets/icons/stat.clock.svg": f,
|
|
39
|
+
"../assets/icons/stat.gift.svg": v,
|
|
40
|
+
"../assets/icons/stat.users.svg": d,
|
|
41
|
+
"../assets/icons/table.rank-down.svg": h,
|
|
42
|
+
"../assets/icons/table.rank-neutral.svg": b,
|
|
43
|
+
"../assets/icons/table.rank-up.svg": w,
|
|
44
|
+
"../assets/icons/vip.crown.svg": y,
|
|
45
|
+
"../assets/icons/win.bag.svg": I,
|
|
46
|
+
"../assets/icons/win.bolt.svg": k,
|
|
47
|
+
"../assets/icons/win.coin.svg": z,
|
|
48
|
+
"../assets/icons/win.fire.svg": S,
|
|
49
|
+
"../assets/icons/win.gem.svg": $,
|
|
50
|
+
"../assets/icons/win.trophy.svg": N
|
|
51
|
+
}), A = {
|
|
52
|
+
"game.cards": E,
|
|
53
|
+
"game.chips": L,
|
|
54
|
+
"game.dice": P,
|
|
55
|
+
"game.gates-of-olympus": j,
|
|
56
|
+
"game.roulette": G,
|
|
57
|
+
"game.slot-machine": C
|
|
58
|
+
}, a = [
|
|
59
|
+
"game.cards",
|
|
60
|
+
"game.chips",
|
|
61
|
+
"game.dice",
|
|
62
|
+
"game.gates-of-olympus",
|
|
63
|
+
"game.roulette",
|
|
64
|
+
"game.slot-machine"
|
|
65
|
+
], R = {
|
|
66
|
+
cards: "game.cards",
|
|
67
|
+
chips: "game.chips",
|
|
68
|
+
dice: "game.dice",
|
|
69
|
+
"gates-of-olympus": "game.gates-of-olympus",
|
|
70
|
+
roulette: "game.roulette",
|
|
71
|
+
"slot-machine": "game.slot-machine"
|
|
72
|
+
};
|
|
73
|
+
function U(r) {
|
|
74
|
+
return r.match(/\/([^/]+)\.svg$/)?.[1] ?? "";
|
|
75
|
+
}
|
|
76
|
+
function x(r, e) {
|
|
77
|
+
return {
|
|
78
|
+
name: r,
|
|
79
|
+
kind: "svg",
|
|
80
|
+
svg() {
|
|
81
|
+
return o`${n(e)}`;
|
|
82
|
+
},
|
|
83
|
+
render({ className: s = "" } = {}) {
|
|
84
|
+
const t = o`${n(e)}`;
|
|
85
|
+
return s ? o`<span class=${s}>${t}</span>` : t;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function D(r, e) {
|
|
90
|
+
return {
|
|
91
|
+
name: r,
|
|
92
|
+
kind: "image",
|
|
93
|
+
url: e,
|
|
94
|
+
svg() {
|
|
95
|
+
throw new Error(`[IconService] Icon "${r}" is an image, not SVG`);
|
|
96
|
+
},
|
|
97
|
+
render({ className: s = "", alt: t = "" } = {}) {
|
|
98
|
+
return o`<img
|
|
99
|
+
src=${e}
|
|
100
|
+
alt=${t}
|
|
101
|
+
class=${s}
|
|
102
|
+
loading="lazy"
|
|
103
|
+
/>`;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function F(r) {
|
|
108
|
+
const e = O(r).toLowerCase();
|
|
109
|
+
return e.includes("grand jackpot") || e === "jackpot" ? "prize.grand-jackpot" : e.includes("elite bonus") ? "prize.elite-bonus" : e.includes("high roller") ? "prize.high-roller" : e.includes("free spin") ? "prize.free-spins" : e.includes("casino credit") ? "prize.casino-credits" : e.includes("mystery") ? "prize.mystery-bonus" : "prize.default";
|
|
110
|
+
}
|
|
111
|
+
function H(r, e) {
|
|
112
|
+
return R[r] ?? a[e % a.length];
|
|
113
|
+
}
|
|
114
|
+
class T {
|
|
115
|
+
constructor() {
|
|
116
|
+
this.registry = /* @__PURE__ */ new Map(), this.loadPromise = null, this.loaded = !1;
|
|
117
|
+
}
|
|
118
|
+
/** Load all bundled SVG and game image icons. Call once on app start. */
|
|
119
|
+
async load() {
|
|
120
|
+
if (!this.loaded)
|
|
121
|
+
return this.loadPromise ? this.loadPromise : (this.loadPromise = (async () => {
|
|
122
|
+
for (const [e, s] of Object.entries(M)) {
|
|
123
|
+
const t = U(e);
|
|
124
|
+
t && this.registry.set(t, x(t, s));
|
|
125
|
+
}
|
|
126
|
+
for (const [e, s] of Object.entries(A))
|
|
127
|
+
this.registry.set(e, D(e, s));
|
|
128
|
+
this.loaded = !0;
|
|
129
|
+
})(), this.loadPromise);
|
|
130
|
+
}
|
|
131
|
+
/** Pick a loaded icon by registry name, e.g. `prize.free-spins`. */
|
|
132
|
+
get(e) {
|
|
133
|
+
this.assertLoaded();
|
|
134
|
+
const s = this.registry.get(e);
|
|
135
|
+
if (!s)
|
|
136
|
+
throw new Error(`[IconService] Unknown icon "${e}"`);
|
|
137
|
+
return s;
|
|
138
|
+
}
|
|
139
|
+
has(e) {
|
|
140
|
+
return this.assertLoaded(), this.registry.has(e);
|
|
141
|
+
}
|
|
142
|
+
resolvePrizeIconName(e) {
|
|
143
|
+
return F(e);
|
|
144
|
+
}
|
|
145
|
+
resolveGameIconName(e, s) {
|
|
146
|
+
return H(e, s);
|
|
147
|
+
}
|
|
148
|
+
resolveWinIconName(e, s) {
|
|
149
|
+
const t = `win.${e}`;
|
|
150
|
+
if (this.has(t)) return t;
|
|
151
|
+
const i = [
|
|
152
|
+
"win.bag",
|
|
153
|
+
"win.coin",
|
|
154
|
+
"win.trophy",
|
|
155
|
+
"win.fire",
|
|
156
|
+
"win.gem",
|
|
157
|
+
"win.bolt"
|
|
158
|
+
];
|
|
159
|
+
return i[s % i.length];
|
|
160
|
+
}
|
|
161
|
+
resolveStatIconName(e) {
|
|
162
|
+
const s = `stat.${e}`;
|
|
163
|
+
return this.has(s) ? s : "stat.users";
|
|
164
|
+
}
|
|
165
|
+
render(e, s) {
|
|
166
|
+
return this.get(e).render(s);
|
|
167
|
+
}
|
|
168
|
+
svg(e) {
|
|
169
|
+
return this.get(e).svg();
|
|
170
|
+
}
|
|
171
|
+
url(e) {
|
|
172
|
+
const s = this.get(e);
|
|
173
|
+
if (s.kind !== "image" || !s.url)
|
|
174
|
+
throw new Error(`[IconService] Icon "${e}" has no image URL`);
|
|
175
|
+
return s.url;
|
|
176
|
+
}
|
|
177
|
+
assertLoaded() {
|
|
178
|
+
if (!this.loaded)
|
|
179
|
+
throw new Error("[IconService] Call load() before get()");
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
const V = new T();
|
|
183
|
+
function we(r) {
|
|
184
|
+
const e = r.startsWith("win.") ? r : `win.${r}`;
|
|
185
|
+
return V.svg(e);
|
|
186
|
+
}
|
|
187
|
+
export {
|
|
188
|
+
T as IconService,
|
|
189
|
+
V as iconService,
|
|
190
|
+
we as winIcon
|
|
191
|
+
};
|
|
192
|
+
//# sourceMappingURL=icon.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.service.js","sources":["../../../../src/components/os-leaderboard-casino/services/icon.service.ts"],"sourcesContent":["import { html } from 'lit';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { labelText, type LabelKey } from '@os-leaderboard-casino/types/data.js';\nimport cards from '../assets/images/games/cards.png?url';\nimport chips from '../assets/images/games/chips.png?url';\nimport dice from '../assets/images/games/dice.png?url';\nimport gatesOfOlympus from '../assets/images/games/gates-of-olympus.png?url';\nimport roulette from '../assets/images/games/roulette.png?url';\nimport slotMachine from '../assets/images/games/slot-machine.png?url';\nimport type {\n GameIconName,\n IconHandle,\n IconName,\n IconRenderOptions,\n PrizeIconName,\n StatIconName,\n WinIconName,\n} from '../types/icons.js';\nimport type { TemplateResult } from 'lit';\n\nexport type {\n GameIconName,\n IconHandle,\n IconName,\n IconRenderOptions,\n PrizeIconName,\n StatIconName,\n WinIconName,\n} from '../types/icons.js';\n\nconst svgModules = import.meta.glob('../assets/icons/*.svg', {\n query: '?raw',\n import: 'default',\n eager: true,\n}) as Record<string, string>;\n\nconst GAME_ICON_URLS: Record<GameIconName, string> = {\n 'game.cards': cards,\n 'game.chips': chips,\n 'game.dice': dice,\n 'game.gates-of-olympus': gatesOfOlympus,\n 'game.roulette': roulette,\n 'game.slot-machine': slotMachine,\n};\n\nconst GAME_ICON_FALLBACK_ORDER: readonly GameIconName[] = [\n 'game.cards',\n 'game.chips',\n 'game.dice',\n 'game.gates-of-olympus',\n 'game.roulette',\n 'game.slot-machine',\n];\n\nconst GAME_ID_TO_ICON: Record<string, GameIconName> = {\n cards: 'game.cards',\n chips: 'game.chips',\n dice: 'game.dice',\n 'gates-of-olympus': 'game.gates-of-olympus',\n roulette: 'game.roulette',\n 'slot-machine': 'game.slot-machine',\n};\n\nfunction iconNameFromPath(path: string): string {\n return path.match(/\\/([^/]+)\\.svg$/)?.[1] ?? '';\n}\n\nfunction createSvgHandle(name: IconName, markup: string): IconHandle {\n return {\n name,\n kind: 'svg',\n svg() {\n return html`${unsafeSVG(markup)}`;\n },\n render({ className = '' } = {}) {\n const content = html`${unsafeSVG(markup)}`;\n return className\n ? html`<span class=${className}>${content}</span>`\n : content;\n },\n };\n}\n\nfunction createImageHandle(name: IconName, url: string): IconHandle {\n return {\n name,\n kind: 'image',\n url,\n svg() {\n throw new Error(`[IconService] Icon \"${name}\" is an image, not SVG`);\n },\n render({ className = '', alt = '' } = {}) {\n return html`<img\n src=${url}\n alt=${alt}\n class=${className}\n loading=\"lazy\"\n />`;\n },\n };\n}\n\nfunction resolvePrizeIconName(\n label: LabelKey | string | undefined,\n): PrizeIconName {\n const text = labelText(label).toLowerCase();\n\n if (text.includes('grand jackpot') || text === 'jackpot') {\n return 'prize.grand-jackpot';\n }\n if (text.includes('elite bonus')) {\n return 'prize.elite-bonus';\n }\n if (text.includes('high roller')) {\n return 'prize.high-roller';\n }\n if (text.includes('free spin')) {\n return 'prize.free-spins';\n }\n if (text.includes('casino credit')) {\n return 'prize.casino-credits';\n }\n if (text.includes('mystery')) {\n return 'prize.mystery-bonus';\n }\n\n return 'prize.default';\n}\n\nfunction resolveGameIconName(id: string, index: number): GameIconName {\n return (\n GAME_ID_TO_ICON[id] ??\n GAME_ICON_FALLBACK_ORDER[index % GAME_ICON_FALLBACK_ORDER.length]\n );\n}\n\n/** Registry-backed icon loader for os-leaderboard-casino. */\nexport class IconService {\n private readonly registry = new Map<string, IconHandle>();\n private loadPromise: Promise<void> | null = null;\n private loaded = false;\n\n /** Load all bundled SVG and game image icons. Call once on app start. */\n async load(): Promise<void> {\n if (this.loaded) return;\n if (this.loadPromise) return this.loadPromise;\n\n this.loadPromise = (async () => {\n for (const [path, markup] of Object.entries(svgModules)) {\n const name = iconNameFromPath(path);\n if (!name) continue;\n this.registry.set(name, createSvgHandle(name as IconName, markup));\n }\n\n for (const [name, url] of Object.entries(GAME_ICON_URLS)) {\n this.registry.set(name, createImageHandle(name as IconName, url));\n }\n\n this.loaded = true;\n })();\n\n return this.loadPromise;\n }\n\n /** Pick a loaded icon by registry name, e.g. `prize.free-spins`. */\n get(name: string): IconHandle {\n this.assertLoaded();\n const icon = this.registry.get(name);\n if (!icon) {\n throw new Error(`[IconService] Unknown icon \"${name}\"`);\n }\n return icon;\n }\n\n has(name: string): boolean {\n this.assertLoaded();\n return this.registry.has(name);\n }\n\n resolvePrizeIconName(label: LabelKey | string | undefined): PrizeIconName {\n return resolvePrizeIconName(label);\n }\n\n resolveGameIconName(id: string, index: number): GameIconName {\n return resolveGameIconName(id, index);\n }\n\n resolveWinIconName(name: string, index: number): WinIconName {\n const key = `win.${name}` as WinIconName;\n if (this.has(key)) return key;\n\n const fallback: WinIconName[] = [\n 'win.bag',\n 'win.coin',\n 'win.trophy',\n 'win.fire',\n 'win.gem',\n 'win.bolt',\n ];\n return fallback[index % fallback.length];\n }\n\n resolveStatIconName(name: string): StatIconName {\n const key = `stat.${name}` as StatIconName;\n return this.has(key) ? key : 'stat.users';\n }\n\n render(name: string, options?: IconRenderOptions): TemplateResult {\n return this.get(name).render(options);\n }\n\n svg(name: string): TemplateResult {\n return this.get(name).svg();\n }\n\n url(name: string): string {\n const icon = this.get(name);\n if (icon.kind !== 'image' || !icon.url) {\n throw new Error(`[IconService] Icon \"${name}\" has no image URL`);\n }\n return icon.url;\n }\n\n private assertLoaded(): void {\n if (!this.loaded) {\n throw new Error('[IconService] Call load() before get()');\n }\n }\n}\n\nexport const iconService = new IconService();\n\nexport function prizeIconSvg(\n label: LabelKey | string | undefined,\n): TemplateResult {\n return iconService.svg(iconService.resolvePrizeIconName(label));\n}\n\nexport function renderPrizeIcon(\n label: LabelKey | string | undefined,\n className = '',\n): TemplateResult {\n return iconService.render(iconService.resolvePrizeIconName(label), {\n className: ['prize-icon', className].filter(Boolean).join(' '),\n });\n}\n\nexport function resolveGameImage(id: string, index: number): string {\n return iconService.url(iconService.resolveGameIconName(id, index));\n}\n\nexport function winIcon(name: string): TemplateResult {\n const registryName = name.startsWith('win.') ? name : `win.${name}`;\n return iconService.svg(registryName);\n}\n"],"names":["svgModules","__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","__vite_glob_0_5","__vite_glob_0_6","__vite_glob_0_7","__vite_glob_0_8","__vite_glob_0_9","__vite_glob_0_10","__vite_glob_0_11","__vite_glob_0_12","__vite_glob_0_13","__vite_glob_0_14","__vite_glob_0_15","__vite_glob_0_16","__vite_glob_0_17","__vite_glob_0_18","__vite_glob_0_19","GAME_ICON_URLS","cards","chips","dice","gatesOfOlympus","roulette","slotMachine","GAME_ICON_FALLBACK_ORDER","GAME_ID_TO_ICON","iconNameFromPath","path","createSvgHandle","name","markup","html","unsafeSVG","className","content","createImageHandle","url","alt","resolvePrizeIconName","label","text","labelText","resolveGameIconName","id","index","IconService","icon","key","fallback","options","iconService","winIcon","registryName"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { AdapterService, adapterService } from './adapter.service.js';
|
|
2
|
+
export { IconService, iconService, type GameIconName, type IconHandle, type IconName, type IconRenderOptions, type PrizeIconName, type StatIconName, type WinIconName, prizeIconSvg, renderPrizeIcon, resolveGameImage, winIcon, } from './icon.service.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { prizeIconSvg, renderPrizeIcon, } from '../services/icon.service.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { QuizPrize } from '../types/data.js';
|
|
2
|
+
/** Prize tier that covers `rank` (inclusive range). */
|
|
3
|
+
export declare function prizeForRank(prizes: QuizPrize[], rank: number): QuizPrize | undefined;
|
|
4
|
+
export declare function isPodiumPrize(prize: QuizPrize): boolean;
|
|
5
|
+
export declare function podiumVariantForRank(rank: 1 | 2 | 3): 'gold' | 'silver' | 'bronze';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
function i(n, r) {
|
|
2
|
+
return n.find((o) => r >= o.rankFrom && r <= o.rankTo);
|
|
3
|
+
}
|
|
4
|
+
function t(n) {
|
|
5
|
+
return { 1: "gold", 2: "silver", 3: "bronze" }[n];
|
|
6
|
+
}
|
|
7
|
+
export {
|
|
8
|
+
t as podiumVariantForRank,
|
|
9
|
+
i as prizeForRank
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=prize-resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prize-resolve.js","sources":["../../../../src/components/os-leaderboard-casino/theme/prize-resolve.ts"],"sourcesContent":["import type { QuizPrize } from '@os-leaderboard-casino/types/data.js';\n\n/** Prize tier that covers `rank` (inclusive range). */\nexport function prizeForRank(\n prizes: QuizPrize[],\n rank: number,\n): QuizPrize | undefined {\n return prizes.find((prize) => rank >= prize.rankFrom && rank <= prize.rankTo);\n}\n\nexport function isPodiumPrize(prize: QuizPrize): boolean {\n return (\n prize.rankFrom === prize.rankTo &&\n prize.rankFrom >= 1 &&\n prize.rankFrom <= 3\n );\n}\n\nexport function podiumVariantForRank(\n rank: 1 | 2 | 3,\n): 'gold' | 'silver' | 'bronze' {\n return ({ 1: 'gold', 2: 'silver', 3: 'bronze' } as const)[rank];\n}\n"],"names":["prizeForRank","prizes","rank","prize","podiumVariantForRank"],"mappings":"AAGO,SAASA,EACdC,GACAC,GACuB;AACvB,SAAOD,EAAO,KAAK,CAACE,MAAUD,KAAQC,EAAM,YAAYD,KAAQC,EAAM,MAAM;AAC9E;AAUO,SAASC,EACdF,GAC8B;AAC9B,SAAQ,EAAE,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAA,EAAqBA,CAAI;AAChE;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design tokens — "casino noir" glam.
|
|
3
|
+
* Champagne gold on deep noir, glassy surfaces, soft neon accents.
|
|
4
|
+
* Each color token reads an external `--os-casino-*` override first so
|
|
5
|
+
* consumers can theme the component from outside the shadow DOM.
|
|
6
|
+
*/
|
|
7
|
+
export declare const osLeaderboardCasinoTheme: import('lit').CSSResult;
|
|
8
|
+
/** Shared glass-card recipe used across sections. */
|
|
9
|
+
export declare const glassCard: import('lit').CSSResult;
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { css as a } from "@lit/reactive-element/css-tag.js";
|
|
2
|
+
const o = a`
|
|
3
|
+
:host {
|
|
4
|
+
--bg: var(--os-casino-bg, #0a0712);
|
|
5
|
+
--bg-2: var(--os-casino-bg-2, #110b1e);
|
|
6
|
+
--surface: var(--os-casino-surface, rgba(26, 19, 42, 0.78));
|
|
7
|
+
--surface-solid: var(--os-casino-surface-solid, #1a132a);
|
|
8
|
+
--surface-2: var(--os-casino-surface-2, rgba(38, 28, 60, 0.85));
|
|
9
|
+
--glass-blur: 14px;
|
|
10
|
+
--radius-lg: 20px;
|
|
11
|
+
--hairline: var(--os-casino-hairline, rgba(255, 255, 255, 0.07));
|
|
12
|
+
--hairline-strong: var(--os-casino-hairline-strong, rgba(255, 255, 255, 0.13));
|
|
13
|
+
--hairline-gold: var(--os-casino-hairline-gold, rgba(245, 196, 81, 0.22));
|
|
14
|
+
|
|
15
|
+
--text: var(--os-casino-text, #f7f3ff);
|
|
16
|
+
--text-dim: var(--os-casino-text-dim, #ab9fce);
|
|
17
|
+
--text-faint: var(--os-casino-text-faint, #6e6394);
|
|
18
|
+
|
|
19
|
+
--gold: var(--os-casino-gold, #f5c451);
|
|
20
|
+
--gold-strong: var(--os-casino-gold-strong, #ffe093);
|
|
21
|
+
--gold-deep: var(--os-casino-gold-deep, #c98f1d);
|
|
22
|
+
--gold-soft: var(--os-casino-gold-soft, rgba(245, 196, 81, 0.13));
|
|
23
|
+
--gold-glow: var(--os-casino-gold-glow, rgba(245, 196, 81, 0.38));
|
|
24
|
+
--gold-gradient: var(
|
|
25
|
+
--os-casino-gold-gradient,
|
|
26
|
+
linear-gradient(
|
|
27
|
+
120deg,
|
|
28
|
+
#8a5e10 0%,
|
|
29
|
+
#f5c451 28%,
|
|
30
|
+
#ffe9b0 50%,
|
|
31
|
+
#f5c451 72%,
|
|
32
|
+
#8a5e10 100%
|
|
33
|
+
)
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
--silver: var(--os-casino-silver, #cfd6e4);
|
|
37
|
+
--silver-soft: var(--os-casino-silver-soft, rgba(207, 214, 228, 0.12));
|
|
38
|
+
--bronze: var(--os-casino-bronze, #d99a66);
|
|
39
|
+
--bronze-soft: var(--os-casino-bronze-soft, rgba(217, 154, 102, 0.12));
|
|
40
|
+
|
|
41
|
+
--violet: var(--os-casino-violet, #9d6bff);
|
|
42
|
+
--violet-soft: var(--os-casino-violet-soft, rgba(157, 107, 255, 0.16));
|
|
43
|
+
--green: var(--os-casino-green, #41e6a5);
|
|
44
|
+
--green-soft: var(--os-casino-green-soft, rgba(65, 230, 165, 0.13));
|
|
45
|
+
--cyan: var(--os-casino-cyan, #5fe6ff);
|
|
46
|
+
--cyan-soft: var(--os-casino-cyan-soft, rgba(95, 230, 255, 0.13));
|
|
47
|
+
--red: var(--os-casino-red, #ff5d7c);
|
|
48
|
+
--red-soft: var(--os-casino-red-soft, rgba(255, 93, 124, 0.13));
|
|
49
|
+
|
|
50
|
+
--radius: 20px;
|
|
51
|
+
--radius-sm: 13px;
|
|
52
|
+
--shadow: 0 22px 48px -24px rgba(0, 0, 0, 0.95);
|
|
53
|
+
--shadow-gold: 0 12px 42px -16px var(--gold-glow);
|
|
54
|
+
|
|
55
|
+
--font-display: var(--os-casino-font-display, 'Sora', system-ui, sans-serif);
|
|
56
|
+
--font-body: var(--os-casino-font-body, 'Inter', system-ui, sans-serif);
|
|
57
|
+
--font-mono: var(--os-casino-font-mono, ui-monospace, 'JetBrains Mono', monospace);
|
|
58
|
+
|
|
59
|
+
font-family: var(--font-body);
|
|
60
|
+
|
|
61
|
+
--transition-fast: 0.2s ease;
|
|
62
|
+
|
|
63
|
+
--accent-2: var(--os-casino-accent-2, color-mix(in srgb, var(--violet) 28%, transparent));
|
|
64
|
+
|
|
65
|
+
--panel-bg: linear-gradient(
|
|
66
|
+
120deg,
|
|
67
|
+
color-mix(in srgb, var(--surface-solid) 94%, transparent),
|
|
68
|
+
color-mix(in srgb, var(--surface) 88%, transparent)
|
|
69
|
+
);
|
|
70
|
+
--panel-border: color-mix(in srgb, var(--violet) 22%, var(--hairline));
|
|
71
|
+
--panel-shadow: 0 18px 50px -28px color-mix(in srgb, black 90%, transparent);
|
|
72
|
+
--panel-fade-start: color-mix(in srgb, var(--surface-solid) 94%, transparent);
|
|
73
|
+
--panel-fade-end: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.section-header {
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: baseline;
|
|
79
|
+
gap: 12px;
|
|
80
|
+
margin-bottom: 12px;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.section-header:has(.strategy) {
|
|
84
|
+
align-items: center;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.section-title {
|
|
88
|
+
margin: 0;
|
|
89
|
+
font-family: var(--font-display);
|
|
90
|
+
font-size: 15px;
|
|
91
|
+
font-weight: 800;
|
|
92
|
+
letter-spacing: 0.02em;
|
|
93
|
+
color: var(--text);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.player-name {
|
|
97
|
+
display: inline-flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
gap: 6px;
|
|
100
|
+
min-width: 0;
|
|
101
|
+
max-width: 100%;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.player-name .name {
|
|
105
|
+
overflow: hidden;
|
|
106
|
+
text-overflow: ellipsis;
|
|
107
|
+
white-space: nowrap;
|
|
108
|
+
font-weight: 700;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.player-name .vip-badge {
|
|
112
|
+
flex: none;
|
|
113
|
+
display: inline-flex;
|
|
114
|
+
align-items: center;
|
|
115
|
+
gap: 3px;
|
|
116
|
+
font-family: var(--font-body);
|
|
117
|
+
font-size: 9.5px;
|
|
118
|
+
font-weight: 800;
|
|
119
|
+
letter-spacing: 0.08em;
|
|
120
|
+
line-height: 1;
|
|
121
|
+
text-transform: uppercase;
|
|
122
|
+
color: var(--gold);
|
|
123
|
+
border: 1px solid color-mix(in srgb, var(--gold) 45%, transparent);
|
|
124
|
+
border-radius: 5px;
|
|
125
|
+
padding: 1px 5px;
|
|
126
|
+
background: transparent;
|
|
127
|
+
vertical-align: middle;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.player-name .vip-badge svg {
|
|
131
|
+
width: 10px;
|
|
132
|
+
height: 10px;
|
|
133
|
+
flex-shrink: 0;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.prize-icon {
|
|
137
|
+
display: inline-grid;
|
|
138
|
+
place-items: center;
|
|
139
|
+
flex: none;
|
|
140
|
+
width: 18px;
|
|
141
|
+
height: 18px;
|
|
142
|
+
vertical-align: -3px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.prize-icon--inline {
|
|
146
|
+
width: 14px;
|
|
147
|
+
height: 14px;
|
|
148
|
+
vertical-align: -2px;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.prize-entry {
|
|
152
|
+
display: inline-flex;
|
|
153
|
+
align-items: center;
|
|
154
|
+
gap: 6px;
|
|
155
|
+
min-width: 0;
|
|
156
|
+
max-width: 100%;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.prize-entry .prize-label {
|
|
160
|
+
overflow: hidden;
|
|
161
|
+
text-overflow: ellipsis;
|
|
162
|
+
white-space: nowrap;
|
|
163
|
+
min-width: 0;
|
|
164
|
+
}
|
|
165
|
+
`;
|
|
166
|
+
a`
|
|
167
|
+
.glass {
|
|
168
|
+
background: var(--surface);
|
|
169
|
+
border: 1px solid var(--hairline);
|
|
170
|
+
border-radius: var(--radius);
|
|
171
|
+
box-shadow: var(--shadow);
|
|
172
|
+
backdrop-filter: blur(var(--glass-blur));
|
|
173
|
+
-webkit-backdrop-filter: blur(var(--glass-blur));
|
|
174
|
+
}
|
|
175
|
+
`;
|
|
176
|
+
export {
|
|
177
|
+
o as osLeaderboardCasinoTheme
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../../src/components/os-leaderboard-casino/theme/styles.ts"],"sourcesContent":["import { css } from '@lit/reactive-element/css-tag.js';\n\n/**\n * Design tokens — \"casino noir\" glam.\n * Champagne gold on deep noir, glassy surfaces, soft neon accents.\n * Each color token reads an external `--os-casino-*` override first so\n * consumers can theme the component from outside the shadow DOM.\n */\nexport const osLeaderboardCasinoTheme = css`\n :host {\n --bg: var(--os-casino-bg, #0a0712);\n --bg-2: var(--os-casino-bg-2, #110b1e);\n --surface: var(--os-casino-surface, rgba(26, 19, 42, 0.78));\n --surface-solid: var(--os-casino-surface-solid, #1a132a);\n --surface-2: var(--os-casino-surface-2, rgba(38, 28, 60, 0.85));\n --glass-blur: 14px;\n --radius-lg: 20px;\n --hairline: var(--os-casino-hairline, rgba(255, 255, 255, 0.07));\n --hairline-strong: var(--os-casino-hairline-strong, rgba(255, 255, 255, 0.13));\n --hairline-gold: var(--os-casino-hairline-gold, rgba(245, 196, 81, 0.22));\n\n --text: var(--os-casino-text, #f7f3ff);\n --text-dim: var(--os-casino-text-dim, #ab9fce);\n --text-faint: var(--os-casino-text-faint, #6e6394);\n\n --gold: var(--os-casino-gold, #f5c451);\n --gold-strong: var(--os-casino-gold-strong, #ffe093);\n --gold-deep: var(--os-casino-gold-deep, #c98f1d);\n --gold-soft: var(--os-casino-gold-soft, rgba(245, 196, 81, 0.13));\n --gold-glow: var(--os-casino-gold-glow, rgba(245, 196, 81, 0.38));\n --gold-gradient: var(\n --os-casino-gold-gradient,\n linear-gradient(\n 120deg,\n #8a5e10 0%,\n #f5c451 28%,\n #ffe9b0 50%,\n #f5c451 72%,\n #8a5e10 100%\n )\n );\n\n --silver: var(--os-casino-silver, #cfd6e4);\n --silver-soft: var(--os-casino-silver-soft, rgba(207, 214, 228, 0.12));\n --bronze: var(--os-casino-bronze, #d99a66);\n --bronze-soft: var(--os-casino-bronze-soft, rgba(217, 154, 102, 0.12));\n\n --violet: var(--os-casino-violet, #9d6bff);\n --violet-soft: var(--os-casino-violet-soft, rgba(157, 107, 255, 0.16));\n --green: var(--os-casino-green, #41e6a5);\n --green-soft: var(--os-casino-green-soft, rgba(65, 230, 165, 0.13));\n --cyan: var(--os-casino-cyan, #5fe6ff);\n --cyan-soft: var(--os-casino-cyan-soft, rgba(95, 230, 255, 0.13));\n --red: var(--os-casino-red, #ff5d7c);\n --red-soft: var(--os-casino-red-soft, rgba(255, 93, 124, 0.13));\n\n --radius: 20px;\n --radius-sm: 13px;\n --shadow: 0 22px 48px -24px rgba(0, 0, 0, 0.95);\n --shadow-gold: 0 12px 42px -16px var(--gold-glow);\n\n --font-display: var(--os-casino-font-display, 'Sora', system-ui, sans-serif);\n --font-body: var(--os-casino-font-body, 'Inter', system-ui, sans-serif);\n --font-mono: var(--os-casino-font-mono, ui-monospace, 'JetBrains Mono', monospace);\n\n font-family: var(--font-body);\n\n --transition-fast: 0.2s ease;\n\n --accent-2: var(--os-casino-accent-2, color-mix(in srgb, var(--violet) 28%, transparent));\n\n --panel-bg: linear-gradient(\n 120deg,\n color-mix(in srgb, var(--surface-solid) 94%, transparent),\n color-mix(in srgb, var(--surface) 88%, transparent)\n );\n --panel-border: color-mix(in srgb, var(--violet) 22%, var(--hairline));\n --panel-shadow: 0 18px 50px -28px color-mix(in srgb, black 90%, transparent);\n --panel-fade-start: color-mix(in srgb, var(--surface-solid) 94%, transparent);\n --panel-fade-end: color-mix(in srgb, var(--surface) 88%, transparent);\n }\n\n .section-header {\n display: flex;\n align-items: baseline;\n gap: 12px;\n margin-bottom: 12px;\n }\n\n .section-header:has(.strategy) {\n align-items: center;\n }\n\n .section-title {\n margin: 0;\n font-family: var(--font-display);\n font-size: 15px;\n font-weight: 800;\n letter-spacing: 0.02em;\n color: var(--text);\n }\n\n .player-name {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n max-width: 100%;\n }\n\n .player-name .name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 700;\n }\n\n .player-name .vip-badge {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: 3px;\n font-family: var(--font-body);\n font-size: 9.5px;\n font-weight: 800;\n letter-spacing: 0.08em;\n line-height: 1;\n text-transform: uppercase;\n color: var(--gold);\n border: 1px solid color-mix(in srgb, var(--gold) 45%, transparent);\n border-radius: 5px;\n padding: 1px 5px;\n background: transparent;\n vertical-align: middle;\n }\n\n .player-name .vip-badge svg {\n width: 10px;\n height: 10px;\n flex-shrink: 0;\n }\n\n .prize-icon {\n display: inline-grid;\n place-items: center;\n flex: none;\n width: 18px;\n height: 18px;\n vertical-align: -3px;\n }\n\n .prize-icon--inline {\n width: 14px;\n height: 14px;\n vertical-align: -2px;\n }\n\n .prize-entry {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n max-width: 100%;\n }\n\n .prize-entry .prize-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n }\n`;\n\n/** Shared glass-card recipe used across sections. */\nexport const glassCard = css`\n .glass {\n background: var(--surface);\n border: 1px solid var(--hairline);\n border-radius: var(--radius);\n box-shadow: var(--shadow);\n backdrop-filter: blur(var(--glass-blur));\n -webkit-backdrop-filter: blur(var(--glass-blur));\n }\n`;\n"],"names":["osLeaderboardCasinoTheme","css"],"mappings":";AAQO,MAAMA,IAA2BC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsKfA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vip-icons.js","sources":["../../../../src/components/os-leaderboard-casino/theme/vip-icons.ts"],"sourcesContent":["import type { TemplateResult } from 'lit';\nimport { iconService } from '@os-leaderboard-casino/services/icon.service.js';\n\nexport const iconCrown = (): TemplateResult => iconService.svg('vip.crown');\n"],"names":["iconCrown","iconService"],"mappings":";AAGO,MAAMA,IAAY,MAAsBC,EAAY,IAAI,WAAW;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { nothing, TemplateResult } from 'lit';
|
|
2
|
+
/** v0 vip badge — slim outline tag with crown + VIP label. */
|
|
3
|
+
export declare function vipBadge(vip?: boolean): TemplateResult | typeof nothing;
|
|
4
|
+
export declare function renderPlayerName(username: string, options?: {
|
|
5
|
+
vip?: boolean;
|
|
6
|
+
suffix?: TemplateResult | typeof nothing;
|
|
7
|
+
}): TemplateResult;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { nothing as s, html as e } from "lit";
|
|
2
|
+
import { iconCrown as p } from "./vip-icons.js";
|
|
3
|
+
function i(n) {
|
|
4
|
+
return n ? e`<span class="vip-badge">${p()}VIP</span>` : s;
|
|
5
|
+
}
|
|
6
|
+
function f(n, a) {
|
|
7
|
+
const r = a?.vip ?? !1;
|
|
8
|
+
return e`
|
|
9
|
+
<span class="player-name ${r ? "is-vip" : ""}">
|
|
10
|
+
${i(r)}
|
|
11
|
+
<span class="name">${n}</span>
|
|
12
|
+
${a?.suffix ?? s}
|
|
13
|
+
</span>
|
|
14
|
+
`;
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
f as renderPlayerName,
|
|
18
|
+
i as vipBadge
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=vip-mark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vip-mark.js","sources":["../../../../src/components/os-leaderboard-casino/theme/vip-mark.ts"],"sourcesContent":["import { html, nothing, type TemplateResult } from 'lit';\nimport { iconCrown } from './vip-icons.js';\n\n/** v0 vip badge — slim outline tag with crown + VIP label. */\nexport function vipBadge(vip?: boolean): TemplateResult | typeof nothing {\n if (!vip) return nothing;\n return html`<span class=\"vip-badge\">${iconCrown()}VIP</span>`;\n}\n\nexport function renderPlayerName(\n username: string,\n options?: { vip?: boolean; suffix?: TemplateResult | typeof nothing },\n): TemplateResult {\n const vip = options?.vip ?? false;\n\n return html`\n <span class=\"player-name ${vip ? 'is-vip' : ''}\">\n ${vipBadge(vip)}\n <span class=\"name\">${username}</span>\n ${options?.suffix ?? nothing}\n </span>\n `;\n}\n"],"names":["vipBadge","vip","html","iconCrown","nothing","renderPlayerName","username","options"],"mappings":";;AAIO,SAASA,EAASC,GAAgD;AACvE,SAAKA,IACEC,4BAA+BC,GAAW,eADhCC;AAEnB;AAEO,SAASC,EACdC,GACAC,GACgB;AAChB,QAAMN,IAAMM,GAAS,OAAO;AAE5B,SAAOL;AAAA,+BACsBD,IAAM,WAAW,EAAE;AAAA,QAC1CD,EAASC,CAAG,CAAC;AAAA,2BACMK,CAAQ;AAAA,QAC3BC,GAAS,UAAUH,CAAO;AAAA;AAAA;AAGlC;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { LeaderboardCasinoLabels, LeaderboardCasinoPresetId, LeaderboardCasinoPresetMeta } from './input.js';
|
|
2
|
+
import { OsLeaderboardCasinoConfig, OsLeaderboardCasinoMainSectionId, OsLeaderboardCasinoSectionId, OsLeaderboardCasinoState } from './state.js';
|
|
3
|
+
export interface LeaderboardCasinoAssetsTheme {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
appearance: OsLeaderboardCasinoConfig['appearance'];
|
|
8
|
+
vars?: Record<string, string>;
|
|
9
|
+
}
|
|
10
|
+
export interface LeaderboardCasinoAssetsPreset {
|
|
11
|
+
id: LeaderboardCasinoPresetId;
|
|
12
|
+
label: string;
|
|
13
|
+
description: string;
|
|
14
|
+
appearance: OsLeaderboardCasinoConfig['appearance'];
|
|
15
|
+
themeId: string;
|
|
16
|
+
config: {
|
|
17
|
+
labels?: LeaderboardCasinoLabels;
|
|
18
|
+
enabled: readonly OsLeaderboardCasinoSectionId[];
|
|
19
|
+
mainOrder?: readonly OsLeaderboardCasinoMainSectionId[];
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/** Static JSON bundle the parent app provides (or ships under `/assets/...`). */
|
|
23
|
+
export interface LeaderboardCasinoAssetsBundle {
|
|
24
|
+
version: 1;
|
|
25
|
+
labels: LeaderboardCasinoLabels;
|
|
26
|
+
themes: readonly LeaderboardCasinoAssetsTheme[];
|
|
27
|
+
presets: {
|
|
28
|
+
defaultPresetId: LeaderboardCasinoPresetId;
|
|
29
|
+
presets: readonly LeaderboardCasinoAssetsPreset[];
|
|
30
|
+
};
|
|
31
|
+
catalog: readonly LeaderboardCasinoPresetMeta[];
|
|
32
|
+
resolvedPresets: Record<string, OsLeaderboardCasinoState>;
|
|
33
|
+
}
|
|
34
|
+
/** Parent passes inline JSON and/or a base URL to static files under `assets/`. */
|
|
35
|
+
export interface LeaderboardCasinoAssetsInput {
|
|
36
|
+
/** Full bundle — preferred when parent already loaded JSON. */
|
|
37
|
+
bundle?: LeaderboardCasinoAssetsBundle | null;
|
|
38
|
+
/** e.g. `/assets/producer_output/os-leaderboard-casino/free` — loads `bundle.json`. */
|
|
39
|
+
baseUrl?: string;
|
|
40
|
+
}
|