@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components.bundle.js","sources":["../src/theme/default-theme.ts","../src/theme/hex-to-rgb.ts","../src/theme/theme-to-css-vars.ts","../src/theme/inject-theme.ts","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit/node_modules/lit-html/lit-html.js","../node_modules/lit/node_modules/lit-element/lit-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../src/lit/safe-custom-element.ts","../src/lit/scss.ts","../src/components/sf-leaderboard/shared/constants/tags.ts","../src/components/sf-leaderboard/shared/constants/defaults.ts","../src/components/sf-leaderboard/shared/constants/player-stats.ts","../src/components/sf-leaderboard/shared/constants/filters.ts","../src/components/sf-leaderboard/shared/constants/stats-overview.ts","../src/components/sf-leaderboard/shared/data/leaderboard-data.ts","../src/components/sf-leaderboard/shared/types/events.ts","../src/theme/styles.ts","../src/components/sf-leaderboard/sf-leaderboard.html?lit-html","../src/components/sf-leaderboard/sections/header-section/header-section.ts","../src/components/sf-leaderboard/shared/components/stat-card/stat-card.html?lit-html","../src/components/sf-leaderboard/shared/components/stat-card/stat-card.ts","../src/components/sf-leaderboard/sections/stats-section/stats-section.ts","../src/components/sf-leaderboard/shared/utils/utils.ts","../src/components/sf-leaderboard/shared/components/podium/map-players.ts","../src/components/sf-leaderboard/shared/components/podium/podium.html?lit-html","../src/components/sf-leaderboard/shared/components/podium/podium.ts","../src/components/sf-leaderboard/shared/components/player-stats-card/player-stats-card.html?lit-html","../src/components/sf-leaderboard/shared/components/player-stats-card/player-stats-card.ts","../src/components/sf-leaderboard/sections/ranking-section/ranking-section.ts","../src/components/sf-leaderboard/shared/components/filters/filters.html?lit-html","../src/components/sf-leaderboard/shared/components/filters/filters.ts","../src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.html?lit-html","../src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.ts","../src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.html?lit-html","../src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.ts","../src/components/sf-leaderboard/shared/components/table/table.html?lit-html","../src/components/sf-leaderboard/shared/components/table/table.ts","../src/components/sf-leaderboard/sections/table-section/table-section.ts","../src/components/sf-leaderboard/sections/footer-section/footer-section.ts","../src/components/sf-leaderboard/sf-leaderboard.ts","../docs-src/bundle.ts"],"sourcesContent":["import defaultThemeJson from './themes/fallback.json';\nimport type { SfLeaderboardTheme } from './types.js';\n\nexport const DEFAULT_SF_LEADERBOARD_THEME = defaultThemeJson as SfLeaderboardTheme;\n","/** `#RRGGBB` or `#RGB` → `r, g, b` for use in `rgba(var(--x-rgb), α)`. */\nexport function hexToRgbChannels(hex: string): string | null {\n const normalized = hex.trim().replace(/^#/, '');\n if (!/^[0-9a-fA-F]{3,8}$/.test(normalized)) {\n return null;\n }\n\n let r: number;\n let g: number;\n let b: number;\n\n if (normalized.length === 3) {\n r = parseInt(normalized[0] + normalized[0], 16);\n g = parseInt(normalized[1] + normalized[1], 16);\n b = parseInt(normalized[2] + normalized[2], 16);\n } else if (normalized.length === 6) {\n r = parseInt(normalized.slice(0, 2), 16);\n g = parseInt(normalized.slice(2, 4), 16);\n b = parseInt(normalized.slice(4, 6), 16);\n } else {\n return null;\n }\n\n return `${r}, ${g}, ${b}`;\n}\n","import { hexToRgbChannels } from './hex-to-rgb.js';\nimport type {\n SfLeaderboardTheme,\n TableColumnId,\n} from './types.js';\n\nconst TABLE_COLUMN_IDS: TableColumnId[] = [\n 'rank',\n 'player',\n 'games',\n 'winRate',\n 'streak',\n 'winnings',\n];\n\nfunction setRgbFromHex(\n vars: Record<string, string>,\n cssKey: string,\n hex: string | undefined,\n): void {\n if (!hex || hex.includes('gradient')) {\n return;\n }\n const channels = hexToRgbChannels(hex);\n if (channels) {\n vars[`${cssKey}-rgb`] = channels;\n }\n}\n\n/**\n * Flattens a theme object into CSS custom properties for the leaderboard host.\n * Keys match `styles/_colors.scss` (`--color-base-1`, `--place-first-table-icon`, …).\n */\nexport function themeToCssVars(theme: SfLeaderboardTheme): Record<string, string> {\n const { palette, typography, placement, table } = theme;\n const vars: Record<string, string> = {};\n\n for (const step of ['1', '2', '3', '4'] as const) {\n vars[`--color-base-${step}`] = palette.base[step];\n }\n\n for (const step of ['1', '2', '3'] as const) {\n vars[`--color-primary-${step}`] = palette.primary[step];\n }\n\n vars['--color-success'] = palette.semantic.success;\n vars['--color-warning'] = palette.semantic.warning;\n vars['--color-error'] = palette.semantic.error;\n if (palette.semantic.informative) {\n vars['--color-informative'] = palette.semantic.informative;\n }\n\n vars['--color-neutral'] = palette.neutral;\n vars['--color-surface-divider'] = palette.surface.divider;\n vars['--color-surface-muted'] = palette.surface.muted;\n if (palette.surface.successBright) {\n vars['--color-surface-success-bright'] = palette.surface.successBright;\n }\n\n vars['--font-primary'] = typography.primary;\n vars['--font-secondary'] = typography.secondary;\n if (typography.mono) {\n vars['--font-mono'] = typography.mono;\n }\n\n const placements = [\n ['first', placement.first],\n ['second', placement.second],\n ['third', placement.third],\n ] as const;\n\n for (const [key, p] of placements) {\n vars[`--place-${key}-table-icon`] = p.tableIcon;\n vars[`--place-${key}-podium-slot`] = p.podiumSlot;\n vars[`--place-${key}-podium-number`] = p.podiumNumber;\n setRgbFromHex(vars, `--place-${key}-table-icon`, p.tableIcon);\n }\n\n setRgbFromHex(vars, '--color-primary-1', palette.primary['1']);\n setRgbFromHex(vars, '--color-success', palette.semantic.success);\n setRgbFromHex(vars, '--color-warning', palette.semantic.warning);\n setRgbFromHex(vars, '--color-error', palette.semantic.error);\n\n for (const colId of TABLE_COLUMN_IDS) {\n const col = table.columns[colId];\n if (!col?.enabled) {\n continue;\n }\n const kebab = colId.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n if (col.color) {\n vars[`--table-col-${kebab}-color`] = col.color;\n }\n if (col.fontSize) {\n vars[`--table-col-${kebab}-font-size`] = col.fontSize;\n }\n }\n\n return vars;\n}\n","import { setActiveTheme } from './context.js';\nimport { themeToCssVars } from './theme-to-css-vars.js';\nimport type { SfLeaderboardTheme } from './types.js';\n\nconst THEME_ATTR = 'data-sf-theme';\n\n/**\n * Injects theme CSS variables into the DOM so every component shadow root inherits them.\n * Default target is `document.documentElement` (:root).\n */\nexport function injectTheme(\n theme: SfLeaderboardTheme,\n root: HTMLElement = document.documentElement,\n): void {\n const vars = themeToCssVars(theme);\n root.setAttribute(THEME_ATTR, theme.id);\n setActiveTheme(theme);\n\n for (const [key, value] of Object.entries(vars)) {\n root.style.setProperty(key, value);\n }\n}\n\n/** Removes theme variables injected on a DOM node. */\nexport function clearTheme(\n root: HTMLElement = document.documentElement,\n): void {\n root.removeAttribute(THEME_ATTR);\n const toRemove: string[] = [];\n for (let i = 0; i < root.style.length; i++) {\n const name = root.style.item(i);\n if (name.startsWith('--color-') || name.startsWith('--place-') || name.startsWith('--table-col-') || name.startsWith('--font-')) {\n toRemove.push(name);\n }\n }\n for (const name of toRemove) {\n root.style.removeProperty(name);\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c()),this.O(c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.3\");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.2\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","/**\n * Registers a custom element only if the tag is not already in the registry.\n * Use instead of Lit's `@customElement` when HMR or duplicate bundles are possible.\n */\nexport function customElement(tag: string) {\n return <T extends CustomElementConstructor>(cls: T): T => {\n if (!customElements.get(tag)) {\n customElements.define(tag, cls);\n }\n return cls;\n };\n}\n","import { unsafeCSS, type CSSResult } from 'lit';\n\n/** Compiled SCSS string → adoptable shadow-root stylesheet. */\nexport function scss(stylesheet: string): CSSResult {\n return unsafeCSS(stylesheet);\n}\n","/** Custom element tag names for the sf-leaderboard package. */\nexport const SF_LEADERBOARD_TAG = 'sf-leaderboard';\nexport const SF_LEADERBOARD_STAT_CARD = 'sf-leaderboard-stat-card';\nexport const SF_LEADERBOARD_FILTERS = 'sf-leaderboard-filters';\nexport const SF_LEADERBOARD_TABLE = 'sf-leaderboard-table';\nexport const SF_LEADERBOARD_PODIUM = 'sf-leaderboard-podium';\nexport const SF_LEADERBOARD_ACTIVITY_FEED = 'sf-leaderboard-activity-feed';\nexport const SF_LEADERBOARD_RANK_BADGE = 'sf-leaderboard-rank-badge';\nexport const SF_LEADERBOARD_PLAYER_AVATAR = 'sf-leaderboard-player-avatar';\nexport const SF_LEADERBOARD_PLAYER_STATS_CARD =\n 'sf-leaderboard-player-stats-card';\nexport const SF_LEADERBOARD_HEADER_SECTION = 'sf-leaderboard-header-section';\nexport const SF_LEADERBOARD_STATS_SECTION = 'sf-leaderboard-stats-section';\nexport const SF_LEADERBOARD_RANKING_SECTION = 'sf-leaderboard-ranking-section';\nexport const SF_LEADERBOARD_TABLE_SECTION = 'sf-leaderboard-table-section';\nexport const SF_LEADERBOARD_FOOTER_SECTION = 'sf-leaderboard-footer-section';\n","import type { Category, TimeFrame } from '../types/data.js';\n\nexport const DEFAULT_LB_TITLE = 'Leaderboard';\nexport const DEFAULT_LB_SUBTITLE = 'Real-time rankings';\n\nexport const DEFAULT_TIMEFRAME: TimeFrame = 'week';\nexport const DEFAULT_CATEGORY: Category = 'all';\n","export const DEFAULT_PLAYER_STATS_TITLE = 'Your Position';\nexport const DEFAULT_PLAYER_STATS_MESSAGE = \"You're in the top 5% of players!\";\nexport const DEFAULT_PLAYER_STATS_RANK = 42;\n","import type { Category, TimeFrame } from '../types/data.js';\n\nexport const TIMEFRAME_OPTIONS: { label: string; value: TimeFrame }[] = [\n { label: 'Today', value: 'today' },\n { label: 'This Week', value: 'week' },\n { label: 'This Month', value: 'month' },\n { label: 'All Time', value: 'all' },\n];\n\nexport const CATEGORY_OPTIONS: { label: string; value: Category }[] = [\n { label: 'All Games', value: 'all' },\n { label: 'Poker', value: 'poker' },\n { label: 'Blackjack', value: 'blackjack' },\n { label: 'Roulette', value: 'roulette' },\n { label: 'Slots', value: 'slots' },\n];\n","export interface SfLeaderboardOverviewStat {\n label: string;\n value: string;\n icon: string;\n trendValue: number;\n trendPositive: boolean;\n}\n\nexport const DEFAULT_OVERVIEW_STATS: SfLeaderboardOverviewStat[] = [\n {\n label: 'Total Players',\n value: '12,847',\n icon: '👥',\n trendValue: 12.5,\n trendPositive: true,\n },\n {\n label: 'Total Wagered',\n value: '$84.2M',\n icon: '💰',\n trendValue: 8.3,\n trendPositive: true,\n },\n {\n label: 'Active Games',\n value: '1,247',\n icon: '🎮',\n trendValue: 3.2,\n trendPositive: true,\n },\n {\n label: 'Biggest Win',\n value: '$125K',\n icon: '⚡',\n trendValue: 45.8,\n trendPositive: true,\n },\n];\n","import {\n DEFAULT_CATEGORY,\n DEFAULT_LB_SUBTITLE,\n DEFAULT_LB_TITLE,\n DEFAULT_TIMEFRAME,\n} from '../constants/defaults.js';\nimport { DEFAULT_OVERVIEW_STATS } from '../constants/stats-overview.js';\nimport {\n DEFAULT_PLAYER_STATS_MESSAGE,\n DEFAULT_PLAYER_STATS_RANK,\n DEFAULT_PLAYER_STATS_TITLE,\n} from '../constants/player-stats.js';\nimport type { Player } from '../types/data.js';\nimport type { SfLeaderboardLayout } from '../types/sections.js';\n\nexport type SfLeaderboardData = SfLeaderboardLayout;\n\nconst DEFAULTS: SfLeaderboardLayout = {\n header: {\n title: DEFAULT_LB_TITLE,\n subtitle: DEFAULT_LB_SUBTITLE,\n icon: '🏆',\n showLive: true,\n backButton: { label: 'Back' },\n isRefreshing: false,\n },\n stats: { items: DEFAULT_OVERVIEW_STATS },\n ranking: {\n podium: { title: 'Top Champions', badge: 'Elite', players: [] },\n playerStats: {\n title: DEFAULT_PLAYER_STATS_TITLE,\n rank: DEFAULT_PLAYER_STATS_RANK,\n message: DEFAULT_PLAYER_STATS_MESSAGE,\n },\n },\n table: {\n title: 'All Rankings',\n subtitle: 'Showing 0 players',\n players: [],\n filters: {\n searchQuery: '',\n timeframe: DEFAULT_TIMEFRAME,\n category: DEFAULT_CATEGORY,\n },\n },\n footer: {\n text: 'Rankings update every 30 seconds • Last updated: Just now',\n },\n};\n\nexport function createDefaultLeaderboardData(\n overrides: Partial<SfLeaderboardData> = {},\n): SfLeaderboardData {\n return {\n ...DEFAULTS,\n ...overrides,\n header: 'header' in overrides ? overrides.header : DEFAULTS.header,\n stats: overrides.stats ?? DEFAULTS.stats,\n ranking: overrides.ranking ?? DEFAULTS.ranking,\n table: overrides.table ?? DEFAULTS.table,\n footer: overrides.footer ?? DEFAULTS.footer,\n };\n}\n\nexport function filterPlayersBySearch(\n players: Player[],\n searchQuery: string,\n): Player[] {\n const q = searchQuery.trim().toLowerCase();\n if (!q) return players;\n return players.filter((p) => p.username.toLowerCase().includes(q));\n}\n\nexport function hasRankingContent(\n ranking: SfLeaderboardLayout['ranking'],\n): boolean {\n return Boolean(ranking?.podium ?? ranking?.playerStats);\n}\n","import type { Category, Player, TimeFrame } from './data.js';\n\nexport const SF_LEADERBOARD_TIMEFRAME_CHANGE = 'timeframe-change';\nexport const SF_LEADERBOARD_CATEGORY_CHANGE = 'category-change';\nexport const SF_LEADERBOARD_SEARCH_CHANGE = 'search-change';\nexport const SF_LEADERBOARD_PLAYER_SELECT = 'player-select';\nexport const SF_LEADERBOARD_REFRESH = 'refresh';\nexport const SF_LEADERBOARD_VIEW_STATS = 'view-stats';\n\nexport interface SfLeaderboardRefreshDetail {\n /** Optional hook for clients that batch refresh with timeframe/category. */\n timeframe: TimeFrame;\n category: Category;\n}\n\nexport interface SfLeaderboardTimeframeChangeDetail {\n timeframe: TimeFrame;\n}\n\nexport interface SfLeaderboardCategoryChangeDetail {\n category: Category;\n}\n\nexport interface SfLeaderboardSearchChangeDetail {\n query: string;\n}\n\nexport interface SfLeaderboardPlayerSelectDetail {\n player: Player;\n}\n","import { scss } from '../lit/scss.js';\nimport type { CSSResult } from 'lit';\nimport sharedStyles from './scss/shared.scss?inline';\n\n/** Shared stylesheet for leaderboard components (semantic aliases + .card). */\nexport const sfLeaderboardTheme: CSSResult = scss(sharedStyles);\n","\nimport { html } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"app\">\n ${host.renderHeader()}\n <main class=\"main\">\n ${host.renderStats()}\n ${host.renderRanking()}\n ${host.renderTable()}\n ${host.renderFooter()}\n </main>\n</div>\n`;\n}\n","import { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../lit/scss.js';\nimport {\n DEFAULT_CATEGORY,\n DEFAULT_TIMEFRAME,\n SF_LEADERBOARD_HEADER_SECTION,\n} from '../../shared/constants/index.js';\nimport { sfLeaderboardTheme } from '../../../../theme/styles.js';\nimport { SF_LEADERBOARD_REFRESH } from '../../shared/types/events.js';\nimport type { SfLeaderboardRefreshDetail } from '../../shared/types/events.js';\nimport type { SfLeaderboardHeaderSection as HeaderSectionData } from '../../shared/types/sections.js';\nimport styles from './header-section.scss?inline';\n\n@customElement(SF_LEADERBOARD_HEADER_SECTION)\nexport class SfLeaderboardHeaderBlock extends LitElement {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ attribute: false })\n section!: HeaderSectionData;\n\n @property({ attribute: false })\n refreshContext?: SfLeaderboardRefreshDetail;\n\n private onBackClick() {\n const ctx = this.refreshContext;\n this.dispatchEvent(\n new CustomEvent(SF_LEADERBOARD_REFRESH, {\n detail: {\n timeframe: ctx?.timeframe ?? DEFAULT_TIMEFRAME,\n category: ctx?.category ?? DEFAULT_CATEGORY,\n },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n if (!this.section) return nothing;\n\n const showBack = this.section.backButton != null;\n const backLabel = this.section.backButton?.label ?? 'Back';\n\n return html`\n <header class=\"header\">\n <div class=\"header-content\">\n <div class=\"logo-section\">\n ${this.section.icon\n ? html`<div class=\"logo-icon\">${this.section.icon}</div>`\n : nothing}\n <div class=\"logo-text\">\n <h1>${this.section.title}</h1>\n ${this.section.subtitle\n ? html`<p>${this.section.subtitle}</p>`\n : nothing}\n </div>\n </div>\n\n <div class=\"header-actions\">\n ${this.section.showLive\n ? html`\n <div class=\"live-badge\">\n <span class=\"live-dot\"></span>\n Live\n </div>\n `\n : nothing}\n ${showBack\n ? html`\n <button\n type=\"button\"\n class=\"back-btn ${this.section.isRefreshing ? 'refreshing' : ''}\"\n @click=${this.onBackClick}\n >\n <span class=\"icon\" aria-hidden=\"true\">←</span>\n ${backLabel}\n </button>\n `\n : nothing}\n </div>\n </div>\n </header>\n `;\n }\n}\n","\nimport { html } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"card\">\n <div class=\"glow\"></div>\n <div class=\"content\">\n <div class=\"header\">\n <span class=\"label\">${host.label}</span>\n <div class=\"icon-wrapper\">${host.icon}</div>\n </div>\n <div class=\"body\">\n <p class=\"value\">${host.value}</p>\n ${host.renderTrend()}\n </div>\n </div>\n</div>\n`;\n}\n","import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../../lit/scss.js';\nimport { SF_LEADERBOARD_STAT_CARD } from '../../constants/tags.js';\nimport { sfLeaderboardTheme } from '../../../../../theme/styles.js';\nimport type { StatCardHost } from './stat-card.host.js';\nimport renderTemplate from './stat-card.html?lit-html';\nimport styles from './stat-card.scss?inline';\n\n@customElement(SF_LEADERBOARD_STAT_CARD)\nexport class SfLeaderboardStatCard extends LitElement implements StatCardHost {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ type: String }) label = '';\n @property({ type: String }) value = '';\n @property({ type: String }) icon = '';\n @property({ type: Number }) trendValue?: number;\n @property({ type: Boolean }) trendPositive = true;\n\n renderTrend() {\n if (this.trendValue === undefined) return html``;\n return html`\n <p class=\"trend ${this.trendPositive ? 'positive' : 'negative'}\">\n ${this.trendPositive ? '+' : ''}${this.trendValue}% from last week\n </p>\n `;\n }\n\n render() {\n return renderTemplate(this);\n }\n}\n","import { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../lit/scss.js';\nimport { SF_LEADERBOARD_STATS_SECTION } from '../../shared/constants/tags.js';\nimport { sfLeaderboardTheme } from '../../../../theme/styles.js';\nimport type { SfLeaderboardStatsSection as StatsSectionData } from '../../shared/types/sections.js';\nimport '../../shared/components/stat-card/stat-card.js';\nimport styles from './stats-section.scss?inline';\n\n@customElement(SF_LEADERBOARD_STATS_SECTION)\nexport class SfLeaderboardStatsBlock extends LitElement {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ attribute: false })\n section!: StatsSectionData;\n\n render() {\n if (!this.section?.items?.length) return nothing;\n\n return html`\n <section class=\"section stats-section\">\n ${this.section.title\n ? html`\n <div class=\"section-header\">\n <h2 class=\"section-title\">${this.section.title}</h2>\n </div>\n `\n : nothing}\n <div class=\"stats-grid\">\n ${this.section.items.map(\n (stat) => html`\n <sf-leaderboard-stat-card\n label=${stat.label}\n value=${stat.value}\n icon=${stat.icon}\n .trendValue=${stat.trendValue}\n ?trendPositive=${stat.trendPositive ?? true}\n ></sf-leaderboard-stat-card>\n `,\n )}\n </div>\n </section>\n `;\n }\n}\n","export function formatCurrency(amount: number): string {\n if (amount >= 1000000) return `$${(amount / 1000000).toFixed(2)}M`;\n if (amount >= 1000) return `$${(amount / 1000).toFixed(1)}K`;\n return `$${amount.toFixed(2)}`;\n}\n\nexport function formatTime(date: Date): string {\n const now = new Date();\n const diff = Math.floor((now.getTime() - date.getTime()) / 1000);\n if (diff < 60) return `${diff}s ago`;\n if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;\n return `${Math.floor(diff / 3600)}h ago`;\n}\n\nexport function getInitials(name: string): string {\n return name.slice(0, 2).toUpperCase();\n}\n","import type { Player } from '../../types/data.js';\nimport { formatCurrency, getInitials } from '../../utils/utils.js';\nimport type { PodiumEntry } from './podium.types.js';\n\nfunction badgeFor(player: Player): string {\n if (player.streak >= 5) return '🔥';\n if (player.rank === 1) return '👑';\n return '✌️';\n}\n\nexport function mapPlayerToPodiumEntry(player: Player): PodiumEntry {\n return {\n rank: player.rank,\n initials: getInitials(player.username),\n username: player.username,\n earnings: formatCurrency(player.totalWinnings),\n winRate: `${player.winRate}% WR`,\n badgeEmoji: badgeFor(player),\n };\n}\n\nexport function mapPlayersToPodiumEntries(players: Player[]): PodiumEntry[] {\n return players.map(mapPlayerToPodiumEntry);\n}\n","\nimport { html } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"card\">\n <div class=\"ambient-glow glow-gold\"></div>\n <div class=\"card-content\">\n <div class=\"podium-container\">\n <div class=\"player-column second\">\n <div class=\"avatar-wrapper\">\n <div class=\"avatar-ring silver\"></div>\n <div class=\"avatar silver\">${host.second.initials}</div>\n <span class=\"badge-emoji\">${host.second.badgeEmoji}</span>\n </div>\n <div class=\"player-name\">${host.second.username}</div>\n <div class=\"player-earnings silver\">${host.second.earnings}</div>\n <div class=\"player-winrate\">${host.second.winRate}</div>\n <div class=\"podium-block second\">\n <span class=\"podium-number silver\">2</span>\n </div>\n </div>\n\n <div class=\"player-column first\">\n <div class=\"sparkles\">\n <span class=\"sparkle\">✦</span>\n <span class=\"sparkle\">✦</span>\n <span class=\"sparkle\">✦</span>\n </div>\n <div class=\"avatar-wrapper\">\n <div class=\"avatar-ring gold\"></div>\n <div class=\"avatar gold\">${host.first.initials}</div>\n <span class=\"badge-emoji fire\">${host.first.badgeEmoji}</span>\n </div>\n <div class=\"player-name\">${host.first.username}</div>\n <div class=\"player-earnings gold\">${host.first.earnings}</div>\n <div class=\"player-winrate\">${host.first.winRate}</div>\n <div class=\"podium-block first\">\n <span class=\"podium-number gold\">1</span>\n </div>\n </div>\n\n <div class=\"player-column third\">\n <div class=\"avatar-wrapper\">\n <div class=\"avatar-ring bronze\"></div>\n <div class=\"avatar bronze\">${host.third.initials}</div>\n <span class=\"badge-emoji\">${host.third.badgeEmoji}</span>\n </div>\n <div class=\"player-name\">${host.third.username}</div>\n <div class=\"player-earnings bronze\">${host.third.earnings}</div>\n <div class=\"player-winrate\">${host.third.winRate}</div>\n <div class=\"podium-block third\">\n <span class=\"podium-number bronze\">3</span>\n </div>\n </div>\n </div>\n </div>\n</div>\n`;\n}\n","import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../../lit/scss.js';\nimport { SF_LEADERBOARD_PODIUM } from '../../constants/tags.js';\nimport { sfLeaderboardTheme } from '../../../../../theme/styles.js';\nimport type { Player } from '../../types/data.js';\nimport { mapPlayersToPodiumEntries } from './map-players.js';\nimport type { PodiumEntry } from './podium.types.js';\nimport type { PodiumHost } from './podium.host.js';\nimport renderTemplate from './podium.html?lit-html';\nimport styles from './podium.scss?inline';\n\n@customElement(SF_LEADERBOARD_PODIUM)\nexport class SfLeaderboardPodium extends LitElement implements PodiumHost {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ type: Array }) players: Player[] = [];\n\n private entryByRank(rank: number): PodiumEntry | undefined {\n return mapPlayersToPodiumEntries(this.players).find((p) => p.rank === rank);\n }\n\n get first(): PodiumEntry {\n return this.entryByRank(1)!;\n }\n\n get second(): PodiumEntry {\n return this.entryByRank(2)!;\n }\n\n get third(): PodiumEntry {\n return this.entryByRank(3)!;\n }\n\n get hasPodium(): boolean {\n return (\n this.players.length >= 3 &&\n this.entryByRank(1) !== undefined &&\n this.entryByRank(2) !== undefined &&\n this.entryByRank(3) !== undefined\n );\n }\n\n render() {\n if (!this.hasPodium) {\n return html``;\n }\n return renderTemplate(this);\n }\n}\n","\nimport { html } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"card\">\n <div class=\"card-content\">\n <div class=\"card-top\">\n <div class=\"rank-section\">\n <div class=\"rank-container\">\n <div class=\"rank-glow\"></div>\n <div class=\"rank-ring\"></div>\n <div class=\"rank-ring rank-ring-2\"></div>\n <span class=\"rank-number\">#${host.rank}</span>\n </div>\n <p class=\"percentile-badge\">\n <span class=\"percentile-icon\" aria-hidden=\"true\">🏆</span>\n <span class=\"percentile-text\"\n >Top ${host.percentile}% of players</span\n >\n </p>\n </div>\n\n <div class=\"avatar-section\">\n <div class=\"avatar\">${host.initials}</div>\n <div class=\"avatar-info\">\n <div class=\"avatar-name\">${host.username}</div>\n <div class=\"avatar-earnings\">${host.earnings}</div>\n </div>\n <div class=\"level-badge\">LVL ${host.level}</div>\n </div>\n </div>\n\n <div class=\"stats-grid\">\n <div class=\"stat-item\">\n <div class=\"stat-main\">\n <span class=\"stat-value highlight\">${host.winRate}%</span>\n <span class=\"stat-label\">Win Rate</span>\n </div>\n </div>\n <div class=\"stat-item\">\n <div class=\"stat-main\">\n <span class=\"stat-value\">${host.gamesPlayed.toLocaleString()}</span>\n <span class=\"stat-label\">Games Played</span>\n </div>\n </div>\n <div class=\"stat-item\">\n <div class=\"stat-main\">\n <span class=\"stat-value streak\">\n <span class=\"fire-icon\">🔥</span> ${host.winStreak}\n </span>\n <span class=\"stat-label\">Win Streak</span>\n </div>\n </div>\n <div class=\"stat-item\">\n <div class=\"stat-main\">\n <span class=\"stat-value\">⭐ 4.8</span>\n <span class=\"stat-label\">Rating</span>\n </div>\n </div>\n </div>\n </div>\n</div>\n`;\n}\n","import { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../../lit/scss.js';\nimport { SF_LEADERBOARD_PLAYER_STATS_CARD } from '../../constants/tags.js';\nimport { sfLeaderboardTheme } from '../../../../../theme/styles.js';\nimport type { PlayerStatsCardHost } from './player-stats-card.host.js';\nimport renderTemplate from './player-stats-card.html?lit-html';\nimport styles from './player-stats-card.scss?inline';\n\n@customElement(SF_LEADERBOARD_PLAYER_STATS_CARD)\nexport class SfLeaderboardPlayerStatsCard extends LitElement\n implements PlayerStatsCardHost {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ type: Number }) rank = 42;\n @property({ type: Number }) percentile = 5;\n @property({ type: String }) username = 'CyberNinja';\n @property({ type: String }) earnings = '$847.2K';\n @property({ type: Number }) winRate = 71;\n @property({ type: Number }) gamesPlayed = 1284;\n @property({ type: Number }) winStreak = 7;\n @property({ type: Number }) level = 47;\n\n get initials(): string {\n return this.username.slice(0, 2).toUpperCase();\n }\n\n render() {\n return renderTemplate(this);\n }\n}\n","import { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../lit/scss.js';\nimport { SF_LEADERBOARD_RANKING_SECTION } from '../../shared/constants/tags.js';\nimport { hasRankingContent } from '../../shared/data/index.js';\nimport { sfLeaderboardTheme } from '../../../../theme/styles.js';\nimport type { Player } from '../../shared/types/data.js';\nimport type {\n SfLeaderboardPlayerStatsSection,\n SfLeaderboardRankingSection as RankingSectionData,\n} from '../../shared/types/sections.js';\nimport { formatCurrency } from '../../shared/utils/utils.js';\nimport '../../shared/components/podium/podium.js';\nimport '../../shared/components/player-stats-card/player-stats-card.js';\nimport styles from './ranking-section.scss?inline';\n\n@customElement(SF_LEADERBOARD_RANKING_SECTION)\nexport class SfLeaderboardRankingBlock extends LitElement {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ attribute: false })\n ranking!: RankingSectionData;\n\n @property({ attribute: false })\n lookupPlayers: Player[] = [];\n\n private get hasPair() {\n return this.ranking?.podium != null && this.ranking?.playerStats != null;\n }\n\n private resolvePlayer(block: SfLeaderboardPlayerStatsSection) {\n return this.lookupPlayers.find((p) => p.rank === block.rank);\n }\n\n private renderPlayerStatsCard(block: SfLeaderboardPlayerStatsSection) {\n const player = this.resolvePlayer(block);\n const percentileMatch = block.message?.match(/(\\d+)\\s*%/);\n const percentile =\n block.percentile ??\n (percentileMatch ? Number(percentileMatch[1]) : 5);\n\n return html`\n <sf-leaderboard-player-stats-card\n rank=\"${block.rank}\"\n percentile=\"${percentile}\"\n username=\"${block.username ?? player?.username ?? 'You'}\"\n earnings=\"${block.earnings ?? (player ? formatCurrency(player.totalWinnings) : '$0')}\"\n winRate=\"${block.winRate ?? player?.winRate ?? 0}\"\n gamesPlayed=\"${block.gamesPlayed ?? player?.gamesPlayed ?? 0}\"\n winStreak=\"${block.winStreak ?? player?.streak ?? 0}\"\n level=\"${block.level ?? player?.level ?? 0}\"\n ></sf-leaderboard-player-stats-card>\n `;\n }\n\n render() {\n if (!hasRankingContent(this.ranking)) return nothing;\n\n const { podium, playerStats } = this.ranking;\n\n return html`\n <section class=\"section ranking-section\">\n <div class=\"ranking-grid ${this.hasPair ? 'has-pair' : 'single'}\">\n ${podium\n ? html`\n <div class=\"ranking-column ranking-column--podium\">\n <div class=\"section-header\">\n <h2 class=\"section-title\">\n ${podium.title ?? 'Top Champions'}\n </h2>\n ${podium.badge\n ? html`<span class=\"elite-badge\">${podium.badge}</span>`\n : nothing}\n </div>\n <div class=\"podium-slot\">\n <sf-leaderboard-podium\n .players=${podium.players}\n ></sf-leaderboard-podium>\n </div>\n </div>\n `\n : nothing}\n ${playerStats\n ? html`\n <div class=\"ranking-column ranking-column--player-stats\">\n <div class=\"section-header\">\n <h2 class=\"section-title\">\n ${playerStats.title ?? 'Your Position'}\n </h2>\n </div>\n ${this.renderPlayerStatsCard(playerStats)}\n </div>\n `\n : nothing}\n </div>\n </section>\n `;\n }\n}\n","\nimport { html } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"filters\">\n <div class=\"search-wrapper\">\n <span class=\"search-icon\">🔍</span>\n <input\n type=\"text\"\n class=\"search-input\"\n placeholder=\"Search players...\"\n .value=\"${host.searchQuery}\"\n @input=\"${host.handleSearchInput}\"\n />\n </div>\n\n <div class=\"timeframe-tabs\">${host.renderTimeframeTabs()}</div>\n\n <select\n class=\"category-select\"\n .value=\"${host.activeCategory}\"\n @change=\"${host.handleCategoryChange}\"\n >\n ${host.renderCategoryOptions()}\n </select>\n</div>\n`;\n}\n","import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../../lit/scss.js';\nimport {\n CATEGORY_OPTIONS,\n DEFAULT_CATEGORY,\n DEFAULT_TIMEFRAME,\n SF_LEADERBOARD_FILTERS,\n TIMEFRAME_OPTIONS,\n} from '../../constants/index.js';\nimport {\n SF_LEADERBOARD_CATEGORY_CHANGE,\n SF_LEADERBOARD_SEARCH_CHANGE,\n SF_LEADERBOARD_TIMEFRAME_CHANGE,\n} from '../../types/events.js';\nimport { sfLeaderboardTheme } from '../../../../../theme/styles.js';\nimport type { Category, TimeFrame } from '../../types/data.js';\nimport type { FiltersHost } from './filters.host.js';\nimport renderTemplate from './filters.html?lit-html';\nimport styles from './filters.scss?inline';\n\n@customElement(SF_LEADERBOARD_FILTERS)\nexport class SfLeaderboardFilters extends LitElement implements FiltersHost {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ type: String }) activeTimeframe: TimeFrame = DEFAULT_TIMEFRAME;\n @property({ type: String }) activeCategory: Category = DEFAULT_CATEGORY;\n @property({ type: String }) searchQuery = '';\n\n private emit<T>(name: string, detail: T) {\n this.dispatchEvent(\n new CustomEvent(name, { detail, bubbles: true, composed: true }),\n );\n }\n\n handleSearchInput(e: Event) {\n const input = e.target as HTMLInputElement;\n this.emit(SF_LEADERBOARD_SEARCH_CHANGE, input.value);\n }\n\n handleTimeframeClick(value: TimeFrame) {\n this.emit(SF_LEADERBOARD_TIMEFRAME_CHANGE, value);\n }\n\n handleCategoryChange(e: Event) {\n const select = e.target as HTMLSelectElement;\n this.emit(SF_LEADERBOARD_CATEGORY_CHANGE, select.value as Category);\n }\n\n renderTimeframeTabs() {\n return html`${TIMEFRAME_OPTIONS.map(\n (tf) => html`\n <button\n class=\"tab-btn ${this.activeTimeframe === tf.value ? 'active' : ''}\"\n @click=\"${() => this.handleTimeframeClick(tf.value as TimeFrame)}\"\n >\n ${tf.label}\n </button>\n `,\n )}`;\n }\n\n renderCategoryOptions() {\n return html`${CATEGORY_OPTIONS.map(\n (cat) => html`<option value=\"${cat.value}\">${cat.label}</option>`,\n )}`;\n }\n\n render() {\n return renderTemplate(this);\n }\n}\n","\nimport { html } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"badge ${host.size} ${host.rankClass}\">\n ${host.renderRankContent()}\n</div>\n${host.renderTrend()}\n`;\n}\n","import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../../lit/scss.js';\nimport { SF_LEADERBOARD_RANK_BADGE } from '../../constants/tags.js';\nimport { sfLeaderboardTheme } from '../../../../../theme/styles.js';\nimport type { RankBadgeHost } from './rank-badge.host.js';\nimport renderTemplate from './rank-badge.html?lit-html';\nimport styles from './rank-badge.scss?inline';\n\n@customElement(SF_LEADERBOARD_RANK_BADGE)\nexport class SfLeaderboardRankBadge extends LitElement\n implements RankBadgeHost {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ type: Number }) rank = 1;\n @property({ type: Number }) previousRank?: number;\n @property({ type: String }) size: 'sm' | 'md' | 'lg' = 'md';\n @property({ type: Boolean }) showTrend = true;\n\n get rankClass(): string {\n return this.rank <= 3 ? `rank-${this.rank}` : 'rank-other';\n }\n\n private getIcon(): string {\n if (this.rank === 1) return '👑';\n if (this.rank === 2) return '🥈';\n if (this.rank === 3) return '🥉';\n return '';\n }\n\n private getTrend() {\n if (!this.previousRank || !this.showTrend) return null;\n const diff = this.previousRank - this.rank;\n if (diff > 0) return { icon: '↑', class: 'up', diff: `+${diff}` };\n if (diff < 0) return { icon: '↓', class: 'down', diff: `${diff}` };\n return { icon: '–', class: 'same', diff: '0' };\n }\n\n renderRankContent() {\n if (this.rank <= 3) {\n return html`\n <span class=\"icon\">${this.getIcon()}</span>\n <span class=\"rank-number\">${this.rank}</span>\n `;\n }\n return html`<span>#${this.rank}</span>`;\n }\n\n renderTrend() {\n const trend = this.getTrend();\n if (!trend) return html``;\n return html`\n <div class=\"trend ${trend.class}\">\n <span class=\"trend-icon\">${trend.icon}</span>\n <span>${trend.diff}</span>\n </div>\n `;\n }\n\n render() {\n return renderTemplate(this);\n }\n}\n","\nimport { html } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"avatar ${host.size} ${host.highlight ? 'highlight' : ''}\">\n ${host.renderAvatarContent()}\n</div>\n${host.renderOnlineIndicator()}\n`;\n}\n","import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../../lit/scss.js';\nimport { SF_LEADERBOARD_PLAYER_AVATAR } from '../../constants/tags.js';\nimport { sfLeaderboardTheme } from '../../../../../theme/styles.js';\nimport { getInitials } from '../../utils/utils.js';\nimport type { PlayerAvatarHost } from './player-avatar.host.js';\nimport renderTemplate from './player-avatar.html?lit-html';\nimport styles from './player-avatar.scss?inline';\n\n@customElement(SF_LEADERBOARD_PLAYER_AVATAR)\nexport class SfLeaderboardPlayerAvatar extends LitElement\n implements PlayerAvatarHost {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ type: String }) username = '';\n @property({ type: String }) avatar = '';\n @property({ type: String }) size: 'sm' | 'md' | 'lg' | 'xl' = 'md';\n @property({ type: Boolean }) isOnline = false;\n @property({ type: Boolean }) highlight = false;\n\n renderAvatarContent() {\n return this.avatar\n ? html`<img src=\"${this.avatar}\" alt=\"${this.username}\" />`\n : html`<span>${getInitials(this.username)}</span>`;\n }\n\n renderOnlineIndicator() {\n return this.isOnline\n ? html`<span class=\"online-indicator\"></span>`\n : html``;\n }\n\n render() {\n return renderTemplate(this);\n }\n}\n","\nimport { html } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"table-container\">\n <div class=\"table-header\">\n <div class=\"col-rank\">Rank</div>\n <div class=\"col-player\">Player</div>\n <div class=\"col-games text-center hide-mobile\">Games</div>\n <div class=\"col-win-rate text-center hide-mobile\">Win Rate</div>\n <div class=\"col-streak text-center hide-mobile\">Streak</div>\n <div class=\"col-winnings text-right\">Winnings</div>\n </div>\n <div class=\"table-body\">${host.renderRows()}</div>\n</div>\n`;\n}\n","import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../../lit/scss.js';\nimport { SF_LEADERBOARD_TABLE } from '../../constants/tags.js';\nimport { SF_LEADERBOARD_PLAYER_SELECT } from '../../types/events.js';\nimport { sfLeaderboardTheme } from '../../../../../theme/styles.js';\nimport type { Player } from '../../types/data.js';\nimport { formatCurrency } from '../../utils/utils.js';\nimport '../rank-badge/rank-badge.js';\nimport '../player-avatar/player-avatar.js';\nimport type { TableHost } from './table.host.js';\nimport renderTemplate from './table.html?lit-html';\nimport styles from './table.scss?inline';\n\n@customElement(SF_LEADERBOARD_TABLE)\nexport class SfLeaderboardTable extends LitElement implements TableHost {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ type: Array }) players: Player[] = [];\n\n private handlePlayerClick(player: Player) {\n this.dispatchEvent(\n new CustomEvent(SF_LEADERBOARD_PLAYER_SELECT, {\n detail: player,\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n renderStreak(player: Player) {\n return player.streak > 0\n ? html`<span class=\"icon\">🔥</span>${player.streak}`\n : html`<span>-</span>`;\n }\n\n renderRows() {\n return html`${this.players.map(\n (player, index) => html`\n <div\n class=\"table-row ${player.rank <= 3 ? 'top-3' : ''}\"\n style=\"animation-delay: ${index * 50}ms\"\n @click=\"${() => this.handlePlayerClick(player)}\"\n >\n <div class=\"col-rank\">\n <sf-leaderboard-rank-badge\n rank=\"${player.rank}\"\n previousRank=\"${player.previousRank || player.rank}\"\n size=\"sm\"\n ></sf-leaderboard-rank-badge>\n </div>\n <div class=\"col-player player-cell\">\n <sf-leaderboard-player-avatar\n username=\"${player.username}\"\n avatar=\"${player.avatar || ''}\"\n size=\"sm\"\n ?isOnline=\"${player.isOnline}\"\n ?highlight=\"${player.rank <= 3}\"\n ></sf-leaderboard-player-avatar>\n <div class=\"player-details\">\n <div class=\"player-name ${player.rank <= 3 ? 'highlight' : ''}\">\n ${player.username}\n </div>\n <span class=\"player-level\">LVL ${player.level}</span>\n </div>\n </div>\n <div class=\"col-games stat-cell hide-mobile\">\n <span class=\"icon\">🏆</span>\n ${player.gamesPlayed.toLocaleString()}\n </div>\n <div\n class=\"col-win-rate stat-cell win-rate ${player.winRate >= 60\n ? 'high'\n : ''} hide-mobile\"\n >\n <span class=\"icon\">🎯</span>\n ${player.winRate}%\n </div>\n <div class=\"col-streak stat-cell streak hide-mobile\">\n ${this.renderStreak(player)}\n </div>\n <div class=\"col-winnings winnings-cell\">\n <span class=\"winnings ${player.rank <= 3 ? 'highlight' : ''}\">\n ${formatCurrency(player.totalWinnings)}\n </span>\n <span class=\"chevron\">→</span>\n </div>\n </div>\n `,\n )}`;\n }\n\n render() {\n return renderTemplate(this);\n }\n}\n","import { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../lit/scss.js';\nimport {\n DEFAULT_CATEGORY,\n DEFAULT_TIMEFRAME,\n SF_LEADERBOARD_TABLE_SECTION,\n} from '../../shared/constants/index.js';\nimport { sfLeaderboardTheme } from '../../../../theme/styles.js';\nimport type { Category, Player, TimeFrame } from '../../shared/types/data.js';\nimport {\n SF_LEADERBOARD_CATEGORY_CHANGE,\n SF_LEADERBOARD_PLAYER_SELECT,\n SF_LEADERBOARD_SEARCH_CHANGE,\n SF_LEADERBOARD_TIMEFRAME_CHANGE,\n} from '../../shared/types/events.js';\nimport type { SfLeaderboardTableSection as TableSectionData } from '../../shared/types/sections.js';\nimport '../../shared/components/filters/filters.js';\nimport '../../shared/components/table/table.js';\nimport styles from './table-section.scss?inline';\n\n@customElement(SF_LEADERBOARD_TABLE_SECTION)\nexport class SfLeaderboardTableBlock extends LitElement {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ attribute: false })\n section!: TableSectionData;\n\n private get timeframe() {\n return this.section.filters?.timeframe ?? DEFAULT_TIMEFRAME;\n }\n\n private get category() {\n return this.section.filters?.category ?? DEFAULT_CATEGORY;\n }\n\n private get searchQuery() {\n return this.section.filters?.searchQuery ?? '';\n }\n\n private onTimeframeChange(e: CustomEvent<TimeFrame>) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent(SF_LEADERBOARD_TIMEFRAME_CHANGE, {\n detail: e.detail,\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private onCategoryChange(e: CustomEvent<Category>) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent(SF_LEADERBOARD_CATEGORY_CHANGE, {\n detail: e.detail,\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private onSearchChange(e: CustomEvent<string>) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent(SF_LEADERBOARD_SEARCH_CHANGE, {\n detail: e.detail,\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private onPlayerSelect(e: CustomEvent<Player>) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent(SF_LEADERBOARD_PLAYER_SELECT, {\n detail: e.detail,\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n if (!this.section) return nothing;\n\n return html`\n <section class=\"section table-section\">\n ${this.section.title || this.section.subtitle\n ? html`\n <div class=\"table-section-header\">\n ${this.section.title\n ? html`<h2 class=\"section-title\">${this.section.title}</h2>`\n : nothing}\n ${this.section.subtitle\n ? html`<span class=\"table-subtitle\">${this.section.subtitle}</span>`\n : nothing}\n </div>\n `\n : nothing}\n ${this.section.filters\n ? html`\n <sf-leaderboard-filters\n activeTimeframe=${this.timeframe}\n activeCategory=${this.category}\n searchQuery=${this.searchQuery}\n @timeframe-change=${this.onTimeframeChange}\n @category-change=${this.onCategoryChange}\n @search-change=${this.onSearchChange}\n ></sf-leaderboard-filters>\n `\n : nothing}\n <sf-leaderboard-table\n .players=${this.section.players}\n @player-select=${this.onPlayerSelect}\n ></sf-leaderboard-table>\n </section>\n `;\n }\n}\n","import { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../../../lit/safe-custom-element.js';\nimport { scss } from '../../../../lit/scss.js';\nimport { SF_LEADERBOARD_FOOTER_SECTION } from '../../shared/constants/tags.js';\nimport { sfLeaderboardTheme } from '../../../../theme/styles.js';\nimport styles from './footer-section.scss?inline';\n\n@customElement(SF_LEADERBOARD_FOOTER_SECTION)\nexport class SfLeaderboardFooterBlock extends LitElement {\n static styles = [sfLeaderboardTheme, scss(styles)];\n\n @property({ type: String })\n text = '';\n\n render() {\n if (!this.text) return nothing;\n return html`\n <footer class=\"page-footer\">\n <p>${this.text}</p>\n </footer>\n `;\n }\n}\n","import { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../lit/safe-custom-element.js';\nimport { scss } from '../../lit/scss.js';\nimport { SF_LEADERBOARD_TAG } from './shared/constants/index.js';\nimport {\n createDefaultLeaderboardData,\n type SfLeaderboardData,\n} from './shared/data/index.js';\nimport {\n DEFAULT_CATEGORY,\n DEFAULT_TIMEFRAME,\n} from './shared/constants/defaults.js';\nimport {\n SF_LEADERBOARD_CATEGORY_CHANGE,\n SF_LEADERBOARD_PLAYER_SELECT,\n SF_LEADERBOARD_SEARCH_CHANGE,\n SF_LEADERBOARD_TIMEFRAME_CHANGE,\n} from './shared/types/events.js';\nimport { sfLeaderboardTheme } from '../../theme/styles.js';\nimport type { Category, Player, TimeFrame } from './shared/types/data.js';\nimport type { SfLeaderboardHost } from './sf-leaderboard.host.js';\nimport renderTemplate from './sf-leaderboard.html?lit-html';\nimport componentStyles from './sf-leaderboard.scss?inline';\nimport './sections/header-section/header-section.js';\nimport './sections/stats-section/stats-section.js';\nimport './sections/ranking-section/ranking-section.js';\nimport './sections/table-section/table-section.js';\nimport './sections/footer-section/footer-section.js';\n\n@customElement(SF_LEADERBOARD_TAG)\nexport class SfLeaderboard extends LitElement implements SfLeaderboardHost {\n static styles = [sfLeaderboardTheme, scss(componentStyles)];\n\n @property({ attribute: false })\n data: SfLeaderboardData = createDefaultLeaderboardData();\n\n get refreshContext() {\n const filters = this.data.table?.filters;\n return {\n timeframe: filters?.timeframe ?? DEFAULT_TIMEFRAME,\n category: filters?.category ?? DEFAULT_CATEGORY,\n };\n }\n\n get footerText() {\n return this.data.footer?.text ?? this.data.table?.footer?.text ?? '';\n }\n\n get rankingLookupPlayers(): Player[] {\n const table = this.data.table?.players ?? [];\n const podium = this.data.ranking?.podium?.players ?? [];\n return [...table, ...podium];\n }\n\n renderHeader() {\n if (!this.data.header) return nothing;\n return html`\n <sf-leaderboard-header-section\n .section=${this.data.header}\n .refreshContext=${this.refreshContext}\n ></sf-leaderboard-header-section>\n `;\n }\n\n renderStats() {\n if (!this.data.stats?.items?.length) return nothing;\n return html`\n <sf-leaderboard-stats-section\n .section=${this.data.stats}\n ></sf-leaderboard-stats-section>\n `;\n }\n\n renderRanking() {\n if (!this.data.ranking) return nothing;\n return html`\n <sf-leaderboard-ranking-section\n .ranking=${this.data.ranking}\n .lookupPlayers=${this.rankingLookupPlayers}\n ></sf-leaderboard-ranking-section>\n `;\n }\n\n renderTable() {\n if (!this.data.table) return nothing;\n return html`\n <sf-leaderboard-table-section\n .section=${this.data.table}\n @timeframe-change=${this.onTimeframeChange}\n @category-change=${this.onCategoryChange}\n @search-change=${this.onSearchChange}\n @player-select=${this.onPlayerSelect}\n ></sf-leaderboard-table-section>\n `;\n }\n\n renderFooter() {\n if (!this.footerText) return nothing;\n return html`\n <sf-leaderboard-footer-section\n text=${this.footerText}\n ></sf-leaderboard-footer-section>\n `;\n }\n\n onTimeframeChange(e: CustomEvent<TimeFrame>) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent(SF_LEADERBOARD_TIMEFRAME_CHANGE, {\n detail: { timeframe: e.detail },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n onCategoryChange(e: CustomEvent<Category>) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent(SF_LEADERBOARD_CATEGORY_CHANGE, {\n detail: { category: e.detail },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n onSearchChange(e: CustomEvent<string>) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent(SF_LEADERBOARD_SEARCH_CHANGE, {\n detail: { query: e.detail },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n onPlayerSelect(e: CustomEvent<Player>) {\n e.stopPropagation();\n this.dispatchEvent(\n new CustomEvent(SF_LEADERBOARD_PLAYER_SELECT, {\n detail: { player: e.detail },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n render() {\n return renderTemplate(this);\n }\n}\n","/**\n * Registers components for the static docs site.\n * Bundled to docs/components.bundle.js by vite.docs.config.ts.\n */\nimport { DEFAULT_SF_LEADERBOARD_THEME } from '../src/theme/default-theme.js';\nimport { injectTheme } from '../src/theme/inject-theme.js';\nimport '../src/components/sf-leaderboard/sf-leaderboard.js';\n\ninjectTheme(DEFAULT_SF_LEADERBOARD_THEME);\n"],"names":["DEFAULT_SF_LEADERBOARD_THEME","defaultThemeJson","hexToRgbChannels","hex","normalized","g","b","TABLE_COLUMN_IDS","setRgbFromHex","vars","cssKey","channels","themeToCssVars","theme","palette","typography","placement","table","step","placements","key","p","colId","col","kebab","m","THEME_ATTR","injectTheme","root","value","t","e","s","o","n$3","r","n","S","c","i","h","a","l","d","u","f","y$1","y","v","_","$","x","E","A","C","V","N","I","L","z","H","M","R","k","Z","B","D","_a","customElement","tag","cls","scss","stylesheet","unsafeCSS","SF_LEADERBOARD_TAG","SF_LEADERBOARD_STAT_CARD","SF_LEADERBOARD_FILTERS","SF_LEADERBOARD_TABLE","SF_LEADERBOARD_PODIUM","SF_LEADERBOARD_RANK_BADGE","SF_LEADERBOARD_PLAYER_AVATAR","SF_LEADERBOARD_PLAYER_STATS_CARD","SF_LEADERBOARD_HEADER_SECTION","SF_LEADERBOARD_STATS_SECTION","SF_LEADERBOARD_RANKING_SECTION","SF_LEADERBOARD_TABLE_SECTION","SF_LEADERBOARD_FOOTER_SECTION","DEFAULT_LB_TITLE","DEFAULT_LB_SUBTITLE","DEFAULT_TIMEFRAME","DEFAULT_CATEGORY","DEFAULT_PLAYER_STATS_TITLE","DEFAULT_PLAYER_STATS_MESSAGE","DEFAULT_PLAYER_STATS_RANK","TIMEFRAME_OPTIONS","CATEGORY_OPTIONS","DEFAULT_OVERVIEW_STATS","DEFAULTS","createDefaultLeaderboardData","overrides","hasRankingContent","ranking","SF_LEADERBOARD_TIMEFRAME_CHANGE","SF_LEADERBOARD_CATEGORY_CHANGE","SF_LEADERBOARD_SEARCH_CHANGE","SF_LEADERBOARD_PLAYER_SELECT","SF_LEADERBOARD_REFRESH","sfLeaderboardTheme","sharedStyles","render","host","html","SfLeaderboardHeaderBlock","LitElement","ctx","nothing","showBack","backLabel","styles","__decorateClass","property","SfLeaderboardStatCard","renderTemplate","SfLeaderboardStatsBlock","stat","formatCurrency","amount","getInitials","name","badgeFor","player","mapPlayerToPodiumEntry","mapPlayersToPodiumEntries","players","SfLeaderboardPodium","rank","SfLeaderboardPlayerStatsCard","SfLeaderboardRankingBlock","block","percentileMatch","percentile","podium","playerStats","SfLeaderboardFilters","detail","input","select","tf","cat","SfLeaderboardRankBadge","diff","trend","SfLeaderboardPlayerAvatar","SfLeaderboardTable","index","SfLeaderboardTableBlock","SfLeaderboardFooterBlock","SfLeaderboard","filters","componentStyles"],"mappings":"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","x_google_ignoreList":[4,5,6,7,8]}
|
package/docs/docs.css
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
* {
|
|
2
|
-
box-sizing: border-box;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
body {
|
|
6
|
-
margin: 0;
|
|
7
|
-
color: #333;
|
|
8
|
-
font-family: 'Open Sans', arial, sans-serif;
|
|
9
|
-
min-width: min-content;
|
|
10
|
-
min-height: 100vh;
|
|
11
|
-
font-size: 18px;
|
|
12
|
-
display: flex;
|
|
13
|
-
flex-direction: column;
|
|
14
|
-
align-items: stretch;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
#main-wrapper {
|
|
18
|
-
flex-grow: 1;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
main {
|
|
22
|
-
max-width: 1024px;
|
|
23
|
-
margin: 0 auto;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
a:visited {
|
|
27
|
-
color: inherit;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
header {
|
|
31
|
-
width: 100%;
|
|
32
|
-
display: flex;
|
|
33
|
-
flex-direction: column;
|
|
34
|
-
align-items: center;
|
|
35
|
-
justify-content: center;
|
|
36
|
-
height: 360px;
|
|
37
|
-
margin: 0;
|
|
38
|
-
background: linear-gradient(0deg, rgba(9,9,121,1) 0%, rgba(0,212,255,1) 100%);
|
|
39
|
-
color: white;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
footer {
|
|
43
|
-
width: 100%;
|
|
44
|
-
min-height: 120px;
|
|
45
|
-
background: gray;
|
|
46
|
-
color: white;
|
|
47
|
-
display: flex;
|
|
48
|
-
flex-direction: column;
|
|
49
|
-
justify-content: center;
|
|
50
|
-
padding: 12px;
|
|
51
|
-
margin-top: 64px;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
h1 {
|
|
55
|
-
font-size: 2.5em;
|
|
56
|
-
font-weight: 400;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
h2 {
|
|
60
|
-
font-size: 1.6em;
|
|
61
|
-
font-weight: 300;
|
|
62
|
-
margin: 64px 0 12px;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
h3 {
|
|
66
|
-
font-weight: 300;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
header h1 {
|
|
70
|
-
width: auto;
|
|
71
|
-
font-size: 2.8em;
|
|
72
|
-
margin: 0;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
header h2 {
|
|
76
|
-
width: auto;
|
|
77
|
-
margin: 0;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
nav {
|
|
81
|
-
display: grid;
|
|
82
|
-
width: 100%;
|
|
83
|
-
max-width: 100%;
|
|
84
|
-
grid-template-columns: repeat(auto-fit, 240px);
|
|
85
|
-
justify-content: center;
|
|
86
|
-
border-bottom: 1px solid #efefef;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
nav > a {
|
|
90
|
-
color: #444;
|
|
91
|
-
display: block;
|
|
92
|
-
flex: 1;
|
|
93
|
-
font-size: 18px;
|
|
94
|
-
padding: 20px 0;
|
|
95
|
-
text-align: center;
|
|
96
|
-
text-decoration: none;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
nav > a:hover {
|
|
100
|
-
text-decoration: underline;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
nav.collection {
|
|
104
|
-
border: none;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
nav.collection > ul {
|
|
108
|
-
padding: 0;
|
|
109
|
-
list-style: none;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
nav.collection > ul > li {
|
|
113
|
-
padding: 4px 0;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
nav.collection > ul > li.selected {
|
|
117
|
-
font-weight: 600;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
nav.collection a {
|
|
121
|
-
text-decoration: none;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
nav.collection a:hover {
|
|
125
|
-
text-decoration: underline;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
section.columns {
|
|
129
|
-
display: grid;
|
|
130
|
-
grid-template-columns: repeat(auto-fit, minmax(400px, 488px));
|
|
131
|
-
grid-gap: 48px;
|
|
132
|
-
justify-content: center;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
section.columns > div {
|
|
136
|
-
flex: 1;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
section.examples {
|
|
140
|
-
display: grid;
|
|
141
|
-
grid-template-columns: 240px minmax(400px, 784px);
|
|
142
|
-
grid-gap: 48px;
|
|
143
|
-
justify-content: center;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
section.examples h2:first-of-type {
|
|
147
|
-
margin-top: 0;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
table {
|
|
151
|
-
width: 100%;
|
|
152
|
-
border-collapse: collapse;
|
|
153
|
-
}
|
|
154
|
-
th {
|
|
155
|
-
font-weight: 600;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
td, th {
|
|
159
|
-
border: solid 1px #aaa;
|
|
160
|
-
padding: 4px;
|
|
161
|
-
text-align: left;
|
|
162
|
-
}
|
package/docs/examples/index.html
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
|
|
4
|
-
<html lang="en">
|
|
5
|
-
<head>
|
|
6
|
-
<meta charset="utf-8">
|
|
7
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
8
|
-
<title><sf-leaderboard> ⌲ Examples ⌲ Basic</title>
|
|
9
|
-
<link rel="stylesheet" href="../docs.css">
|
|
10
|
-
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600|Roboto+Mono">
|
|
11
|
-
<link href="../prism-okaidia.css" rel="stylesheet" />
|
|
12
|
-
<script type="module" src="../components.bundle.js"></script>
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
|
|
16
|
-
<header>
|
|
17
|
-
<h1><sf-leaderboard></h1>
|
|
18
|
-
<h2>Oddsmith web components</h2>
|
|
19
|
-
</header>
|
|
20
|
-
|
|
21
|
-
<nav>
|
|
22
|
-
<a href="../">Home</a>
|
|
23
|
-
<a href="">Examples</a>
|
|
24
|
-
<a href="../api/">API</a>
|
|
25
|
-
<a href="../install/">Install</a>
|
|
26
|
-
</nav>
|
|
27
|
-
<div id="main-wrapper">
|
|
28
|
-
<main>
|
|
29
|
-
|
|
30
|
-
<h1>Example: Basic</h1>
|
|
31
|
-
<section class="examples">
|
|
32
|
-
<nav class="collection">
|
|
33
|
-
<ul>
|
|
34
|
-
|
|
35
|
-
<li class=selected>
|
|
36
|
-
<a href="">Default leaderboard</a>
|
|
37
|
-
</li>
|
|
38
|
-
|
|
39
|
-
</ul>
|
|
40
|
-
</nav>
|
|
41
|
-
<div>
|
|
42
|
-
<p><sf-leaderboard></sf-leaderboard></p>
|
|
43
|
-
<h3>HTML</h3>
|
|
44
|
-
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>sf-leaderboard</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>sf-leaderboard</span><span class="token punctuation">></span></span></code></pre>
|
|
45
|
-
|
|
46
|
-
</div>
|
|
47
|
-
</section>
|
|
48
|
-
|
|
49
|
-
</main>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
<footer>
|
|
53
|
-
<p>Oddsmith — brandable web components for gaming</p>
|
|
54
|
-
</footer>
|
|
55
|
-
</body>
|
|
56
|
-
</html>
|
package/docs/index.html
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
|
|
4
|
-
<html lang="en">
|
|
5
|
-
<head>
|
|
6
|
-
<meta charset="utf-8">
|
|
7
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
8
|
-
<title><sf-leaderboard> ⌲ Home</title>
|
|
9
|
-
<link rel="stylesheet" href="docs.css">
|
|
10
|
-
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600|Roboto+Mono">
|
|
11
|
-
<link href="prism-okaidia.css" rel="stylesheet" />
|
|
12
|
-
<script type="module" src="components.bundle.js"></script>
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
|
|
16
|
-
<header>
|
|
17
|
-
<h1><sf-leaderboard></h1>
|
|
18
|
-
<h2>Oddsmith web components</h2>
|
|
19
|
-
</header>
|
|
20
|
-
|
|
21
|
-
<nav>
|
|
22
|
-
<a href="">Home</a>
|
|
23
|
-
<a href="examples/">Examples</a>
|
|
24
|
-
<a href="api/">API</a>
|
|
25
|
-
<a href="install/">Install</a>
|
|
26
|
-
</nav>
|
|
27
|
-
<div id="main-wrapper">
|
|
28
|
-
<main>
|
|
29
|
-
<h1><sf-leaderboard></h1>
|
|
30
|
-
<p><code><sf-leaderboard></code> is a themeable leaderboard web component built with Lit. Use it in any app that supports custom elements.</p>
|
|
31
|
-
<h2>As easy as HTML</h2>
|
|
32
|
-
<section class="columns">
|
|
33
|
-
<div>
|
|
34
|
-
<p><code><sf-leaderboard></code> is a custom element. Drop it anywhere you use HTML.</p>
|
|
35
|
-
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>sf-leaderboard</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>sf-leaderboard</span><span class="token punctuation">></span></span></code></pre>
|
|
36
|
-
</div>
|
|
37
|
-
<div>
|
|
38
|
-
<p><sf-leaderboard></sf-leaderboard></p>
|
|
39
|
-
</div>
|
|
40
|
-
</section>
|
|
41
|
-
<h2>With npm</h2>
|
|
42
|
-
<p>Install the package and import the component entry so it registers itself:</p>
|
|
43
|
-
<pre class="language-js"><code class="language-js"><span class="token keyword">import</span> <span class="token string">'@oddsmith/core/sf-leaderboard'</span><span class="token punctuation">;</span></code></pre>
|
|
44
|
-
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>sf-leaderboard</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>sf-leaderboard</span><span class="token punctuation">></span></span></code></pre>
|
|
45
|
-
|
|
46
|
-
</main>
|
|
47
|
-
</div>
|
|
48
|
-
|
|
49
|
-
<footer>
|
|
50
|
-
<p>Oddsmith — brandable web components for gaming</p>
|
|
51
|
-
</footer>
|
|
52
|
-
</body>
|
|
53
|
-
</html>
|
package/docs/install/index.html
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
|
|
4
|
-
<html lang="en">
|
|
5
|
-
<head>
|
|
6
|
-
<meta charset="utf-8">
|
|
7
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
8
|
-
<title><sf-leaderboard> ⌲ Install</title>
|
|
9
|
-
<link rel="stylesheet" href="../docs.css">
|
|
10
|
-
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600|Roboto+Mono">
|
|
11
|
-
<link href="../prism-okaidia.css" rel="stylesheet" />
|
|
12
|
-
<script type="module" src="../components.bundle.js"></script>
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
|
|
16
|
-
<header>
|
|
17
|
-
<h1><sf-leaderboard></h1>
|
|
18
|
-
<h2>Oddsmith web components</h2>
|
|
19
|
-
</header>
|
|
20
|
-
|
|
21
|
-
<nav>
|
|
22
|
-
<a href="../">Home</a>
|
|
23
|
-
<a href="../examples/">Examples</a>
|
|
24
|
-
<a href="../api/">API</a>
|
|
25
|
-
<a href="">Install</a>
|
|
26
|
-
</nav>
|
|
27
|
-
<div id="main-wrapper">
|
|
28
|
-
<main>
|
|
29
|
-
<h1>Install</h1>
|
|
30
|
-
<p>Components are published as ES modules from the <code>@oddsmith/core</code> package.</p>
|
|
31
|
-
<h2>Local installation</h2>
|
|
32
|
-
<pre class="language-bash"><code class="language-bash"><span class="token function">npm</span> i @oddsmith/core</code></pre>
|
|
33
|
-
<pre class="language-js"><code class="language-js"><span class="token keyword">import</span> <span class="token string">'@oddsmith/core/sf-leaderboard'</span><span class="token punctuation">;</span></code></pre>
|
|
34
|
-
<h2>From <code>dist/</code> after building this repo</h2>
|
|
35
|
-
<pre class="language-js"><code class="language-js"><span class="token keyword">import</span> <span class="token string">'../dist/sf-leaderboard/index.js'</span><span class="token punctuation">;</span></code></pre>
|
|
36
|
-
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>sf-leaderboard</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>sf-leaderboard</span><span class="token punctuation">></span></span></code></pre>
|
|
37
|
-
|
|
38
|
-
</main>
|
|
39
|
-
</div>
|
|
40
|
-
|
|
41
|
-
<footer>
|
|
42
|
-
<p>Oddsmith — brandable web components for gaming</p>
|
|
43
|
-
</footer>
|
|
44
|
-
</body>
|
|
45
|
-
</html>
|