@oddsmith/ui 0.0.0 → 1.0.0
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.js +9 -0
- package/dist/components/os-leaderboard-casino/constants/defaults.js.map +1 -0
- package/dist/components/os-leaderboard-casino/constants/tags.js +15 -0
- package/dist/components/os-leaderboard-casino/constants/tags.js.map +1 -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.js +39 -0
- package/dist/components/os-leaderboard-casino/index.js.map +1 -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.js +64 -0
- package/dist/components/os-leaderboard-casino/integration/assets-context.js.map +1 -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/resolve-input.js +99 -0
- package/dist/components/os-leaderboard-casino/integration/resolve-input.js.map +1 -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.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.js +89 -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.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 +38 -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/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/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 +159 -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.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 +73 -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/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.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.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.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/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 +134 -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/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 +67 -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.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 +182 -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.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.js +192 -0
- package/dist/components/os-leaderboard-casino/services/icon.service.js.map +1 -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.js +179 -0
- package/dist/components/os-leaderboard-casino/theme/styles.js.map +1 -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.js +20 -0
- package/dist/components/os-leaderboard-casino/theme/vip-mark.js.map +1 -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.js +8 -0
- package/dist/components/os-leaderboard-casino/types/events.js.map +1 -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/index.d.ts +734 -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.js +7 -0
- package/dist/shared/lib/lit/safe-custom-element.js.map +1 -0
- package/dist/shared/lib/lit/scss.js +8 -0
- package/dist/shared/lib/lit/scss.js.map +1 -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 +36 -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.host.ts +0 -3
- package/src/components/sf-leaderboard/sections/footer-section/footer-section.html +0 -3
- package/src/components/sf-leaderboard/sections/footer-section/footer-section.scss +0 -18
- package/src/components/sf-leaderboard/sections/footer-section/footer-section.ts +0 -22
- package/src/components/sf-leaderboard/sections/header-section/header-section.host.ts +0 -14
- package/src/components/sf-leaderboard/sections/header-section/header-section.html +0 -27
- package/src/components/sf-leaderboard/sections/header-section/header-section.scss +0 -189
- package/src/components/sf-leaderboard/sections/header-section/header-section.ts +0 -70
- package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.host.ts +0 -22
- package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.html +0 -38
- package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.scss +0 -99
- package/src/components/sf-leaderboard/sections/ranking-section/ranking-section.ts +0 -121
- package/src/components/sf-leaderboard/sections/stats-section/stats-section.host.ts +0 -8
- package/src/components/sf-leaderboard/sections/stats-section/stats-section.html +0 -6
- package/src/components/sf-leaderboard/sections/stats-section/stats-section.scss +0 -44
- package/src/components/sf-leaderboard/sections/stats-section/stats-section.ts +0 -41
- package/src/components/sf-leaderboard/sections/table-section/table-section.host.ts +0 -17
- package/src/components/sf-leaderboard/sections/table-section/table-section.html +0 -19
- package/src/components/sf-leaderboard/sections/table-section/table-section.scss +0 -37
- package/src/components/sf-leaderboard/sections/table-section/table-section.ts +0 -108
- package/src/components/sf-leaderboard/services/index.ts +0 -22
- package/src/components/sf-leaderboard/services/sf-leaderboard-data.service.ts +0 -54
- package/src/components/sf-leaderboard/services/sf-leaderboard.state.ts +0 -160
- package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.host.ts +0 -7
- package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.html +0 -10
- package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.scss +0 -180
- package/src/components/sf-leaderboard/shared/components/activity-feed/activity-feed.ts +0 -88
- package/src/components/sf-leaderboard/shared/components/filters/filters.host.ts +0 -12
- package/src/components/sf-leaderboard/shared/components/filters/filters.html +0 -22
- package/src/components/sf-leaderboard/shared/components/filters/filters.scss +0 -122
- package/src/components/sf-leaderboard/shared/components/filters/filters.ts +0 -75
- package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.host.ts +0 -9
- package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.html +0 -5
- package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.scss +0 -81
- package/src/components/sf-leaderboard/shared/components/player-avatar/player-avatar.ts +0 -34
- package/src/components/sf-leaderboard/shared/components/podium/map-players.ts +0 -24
- package/src/components/sf-leaderboard/shared/components/podium/podium.host.ts +0 -10
- package/src/components/sf-leaderboard/shared/components/podium/podium.html +0 -53
- package/src/components/sf-leaderboard/shared/components/podium/podium.scss +0 -580
- package/src/components/sf-leaderboard/shared/components/podium/podium.ts +0 -49
- package/src/components/sf-leaderboard/shared/components/podium/podium.types.ts +0 -9
- package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.host.ts +0 -11
- package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.html +0 -9
- package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.scss +0 -98
- package/src/components/sf-leaderboard/shared/components/rank-badge/rank-badge.ts +0 -63
- package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.host.ts +0 -9
- package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.html +0 -15
- package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.scss +0 -210
- package/src/components/sf-leaderboard/shared/components/stat-card/stat-card.ts +0 -36
- package/src/components/sf-leaderboard/shared/components/table/table.host.ts +0 -5
- package/src/components/sf-leaderboard/shared/components/table/table.html +0 -11
- package/src/components/sf-leaderboard/shared/components/table/table.scss +0 -212
- package/src/components/sf-leaderboard/shared/components/table/table.ts +0 -111
- package/src/components/sf-leaderboard/shared/constants/defaults.ts +0 -7
- package/src/components/sf-leaderboard/shared/constants/filters.ts +0 -16
- package/src/components/sf-leaderboard/shared/constants/index.ts +0 -5
- package/src/components/sf-leaderboard/shared/constants/player-stats.ts +0 -3
- package/src/components/sf-leaderboard/shared/constants/stats-overview.ts +0 -38
- package/src/components/sf-leaderboard/shared/constants/tags.ts +0 -16
- package/src/components/sf-leaderboard/shared/styles/_section.scss +0 -35
- package/src/components/sf-leaderboard/shared/types/data.ts +0 -29
- package/src/components/sf-leaderboard/shared/types/events.ts +0 -30
- package/src/components/sf-leaderboard/shared/types/player-stats.ts +0 -3
- package/src/components/sf-leaderboard/shared/types/sections.ts +0 -100
- package/src/components/sf-leaderboard/shared/utils/utils.ts +0 -17
- package/src/components/sf-leaderboard/theme/THEMING.md +0 -54
- package/src/components/sf-leaderboard/theme/context.ts +0 -16
- package/src/components/sf-leaderboard/theme/default-theme.ts +0 -4
- package/src/components/sf-leaderboard/theme/hex-to-rgb.ts +0 -25
- package/src/components/sf-leaderboard/theme/index.ts +0 -18
- package/src/components/sf-leaderboard/theme/inject-theme.ts +0 -39
- package/src/components/sf-leaderboard/theme/load-theme.ts +0 -26
- package/src/components/sf-leaderboard/theme/merge-theme.ts +0 -59
- package/src/components/sf-leaderboard/theme/scss/_colors.scss +0 -101
- package/src/components/sf-leaderboard/theme/scss/shared.scss +0 -123
- package/src/components/sf-leaderboard/theme/styles.ts +0 -6
- package/src/components/sf-leaderboard/theme/theme-to-css-vars.ts +0 -99
- package/src/components/sf-leaderboard/theme/themes/fallback.json +0 -62
- package/src/components/sf-leaderboard/theme/themes/red.json +0 -62
- package/src/components/sf-leaderboard/theme/types.ts +0 -71
- package/src/components/sf-live-feed/components/avatar/avatar.host.ts +0 -5
- package/src/components/sf-live-feed/components/avatar/avatar.html +0 -3
- package/src/components/sf-live-feed/components/avatar/avatar.scss +0 -24
- package/src/components/sf-live-feed/components/avatar/avatar.ts +0 -27
- package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.host.ts +0 -8
- package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.html +0 -10
- package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.scss +0 -177
- package/src/components/sf-live-feed/components/sf-live-feed/sf-live-feed.ts +0 -65
- package/src/components/sf-live-feed/constants.ts +0 -4
- package/src/components/sf-live-feed/demo/sample-data.ts +0 -34
- package/src/components/sf-live-feed/index.ts +0 -19
- package/src/components/sf-live-feed/styles/theme.scss +0 -19
- package/src/components/sf-live-feed/styles/theme.ts +0 -5
- package/src/components/sf-live-feed/types.ts +0 -19
- package/src/components/sf-live-feed/utils.ts +0 -17
- package/src/components/streaks/constants.ts +0 -17
- package/src/components/streaks/demo/sample-steps.ts +0 -10
- package/src/components/streaks/events.ts +0 -8
- package/src/components/streaks/index.ts +0 -16
- package/src/components/streaks/sf-streaks.html +0 -26
- package/src/components/streaks/sf-streaks.scss +0 -351
- package/src/components/streaks/sf-streaks.ts +0 -235
- package/src/components/streaks/types.ts +0 -7
- package/src/lib/lit/component.ts +0 -10
- package/src/lib/lit/safe-custom-element.ts +0 -12
- package/src/lib/lit/scss.ts +0 -6
- package/src/vite-env.d.ts +0 -18
- package/styles/global.css +0 -125
- package/todo.txt +0 -54
- package/tsconfig.json +0 -31
- package/vite.config.ts +0 -56
- package/vite.docs.config.ts +0 -33
- package/vite.lit-html-plugin.ts +0 -43
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { LitElement as f, nothing as u, html as p } from "lit";
|
|
2
|
+
import { property as d, state as c } from "lit/decorators.js";
|
|
3
|
+
import { Component as b } from "../../../../shared/lib/lit/component.js";
|
|
4
|
+
import { scss as y } from "../../../../shared/lib/lit/scss.js";
|
|
5
|
+
import { OS_LEADERBOARD_CASINO_HERO as w } from "../../constants/tags.js";
|
|
6
|
+
import { osLeaderboardCasinoTheme as D } from "../../theme/styles.js";
|
|
7
|
+
import g from "./hero-section.html.js";
|
|
8
|
+
import T from "./hero-section.scss.js";
|
|
9
|
+
var v = Object.defineProperty, A = Object.getOwnPropertyDescriptor, l = (t, e, s, i) => {
|
|
10
|
+
for (var o = i > 1 ? void 0 : i ? A(e, s) : e, a = t.length - 1, r; a >= 0; a--)
|
|
11
|
+
(r = t[a]) && (o = (i ? r(e, s, o) : r(o)) || o);
|
|
12
|
+
return i && o && v(e, s, o), o;
|
|
13
|
+
};
|
|
14
|
+
function h(t, e = Date.now()) {
|
|
15
|
+
const s = Math.floor((new Date(t).getTime() - e) / 1e3);
|
|
16
|
+
return !Number.isFinite(s) || s <= 0 ? { expired: !0, days: 0, hours: 0, minutes: 0, seconds: 0 } : {
|
|
17
|
+
expired: !1,
|
|
18
|
+
days: Math.floor(s / 86400),
|
|
19
|
+
hours: Math.floor(s % 86400 / 3600),
|
|
20
|
+
minutes: Math.floor(s % 3600 / 60),
|
|
21
|
+
seconds: s % 60
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const P = {
|
|
25
|
+
upcoming: "Upcoming",
|
|
26
|
+
active: "Live",
|
|
27
|
+
completed: "Finished",
|
|
28
|
+
cancelled: "Cancelled"
|
|
29
|
+
};
|
|
30
|
+
let n = class extends f {
|
|
31
|
+
constructor() {
|
|
32
|
+
super(...arguments), this.now = Date.now(), this.poolDisplay = null, this.poolBump = !1;
|
|
33
|
+
}
|
|
34
|
+
get showBanner() {
|
|
35
|
+
return !!this.section?.bannerAsset?.url;
|
|
36
|
+
}
|
|
37
|
+
get bannerUrl() {
|
|
38
|
+
return this.section?.bannerAsset?.url ?? "";
|
|
39
|
+
}
|
|
40
|
+
get bannerAlt() {
|
|
41
|
+
return this.section?.bannerAsset?.label || "";
|
|
42
|
+
}
|
|
43
|
+
get showStatus() {
|
|
44
|
+
return !!this.section?.status;
|
|
45
|
+
}
|
|
46
|
+
get status() {
|
|
47
|
+
return this.section?.status;
|
|
48
|
+
}
|
|
49
|
+
get statusLabel() {
|
|
50
|
+
const t = this.section?.status;
|
|
51
|
+
return t ? P[t] : "";
|
|
52
|
+
}
|
|
53
|
+
get showActiveDot() {
|
|
54
|
+
return this.section?.status === "active";
|
|
55
|
+
}
|
|
56
|
+
get showDescription() {
|
|
57
|
+
return !!this.section?.description;
|
|
58
|
+
}
|
|
59
|
+
get showPool() {
|
|
60
|
+
return this.poolDisplay != null || !!this.section?.prizePool;
|
|
61
|
+
}
|
|
62
|
+
get poolValueLabel() {
|
|
63
|
+
return this.poolDisplay != null ? this.formatPool(this.poolDisplay) : this.section?.prizePool ?? "";
|
|
64
|
+
}
|
|
65
|
+
get poolLabel() {
|
|
66
|
+
return this.section?.prizePoolLabel ?? "Total prize pool";
|
|
67
|
+
}
|
|
68
|
+
get showRising() {
|
|
69
|
+
return this.poolDisplay != null;
|
|
70
|
+
}
|
|
71
|
+
connectedCallback() {
|
|
72
|
+
super.connectedCallback(), this.timer = setInterval(() => {
|
|
73
|
+
this.now = Date.now();
|
|
74
|
+
}, 1e3);
|
|
75
|
+
}
|
|
76
|
+
disconnectedCallback() {
|
|
77
|
+
super.disconnectedCallback(), this.timer && clearInterval(this.timer), this.poolRaf && cancelAnimationFrame(this.poolRaf), this.bumpTimer && clearTimeout(this.bumpTimer);
|
|
78
|
+
}
|
|
79
|
+
willUpdate(t) {
|
|
80
|
+
if (!t.has("section")) return;
|
|
81
|
+
const e = this.section?.prizePoolValue;
|
|
82
|
+
if (e == null) {
|
|
83
|
+
this.poolDisplay = null;
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (this.poolDisplay == null) {
|
|
87
|
+
this.poolDisplay = e;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
e !== this.poolDisplay && this.animatePool(e);
|
|
91
|
+
}
|
|
92
|
+
/** Rolling count-up from the current display value to `target`. */
|
|
93
|
+
animatePool(t) {
|
|
94
|
+
this.poolRaf && cancelAnimationFrame(this.poolRaf);
|
|
95
|
+
const e = this.poolDisplay ?? t, s = 1100, i = performance.now(), o = (a) => {
|
|
96
|
+
const r = Math.min(1, (a - i) / s), m = 1 - Math.pow(1 - r, 3);
|
|
97
|
+
this.poolDisplay = Math.round(e + (t - e) * m), r < 1 && (this.poolRaf = requestAnimationFrame(o));
|
|
98
|
+
};
|
|
99
|
+
this.poolRaf = requestAnimationFrame(o), t > e && (this.poolBump = !0, this.bumpTimer && clearTimeout(this.bumpTimer), this.bumpTimer = setTimeout(() => {
|
|
100
|
+
this.poolBump = !1;
|
|
101
|
+
}, 650));
|
|
102
|
+
}
|
|
103
|
+
formatPool(t) {
|
|
104
|
+
try {
|
|
105
|
+
return new Intl.NumberFormat("en-US", {
|
|
106
|
+
style: "currency",
|
|
107
|
+
currency: this.section?.prizePoolCurrency ?? "USD",
|
|
108
|
+
maximumFractionDigits: 0
|
|
109
|
+
}).format(t);
|
|
110
|
+
} catch {
|
|
111
|
+
return t.toLocaleString();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
get isFinished() {
|
|
115
|
+
const t = this.section?.status;
|
|
116
|
+
return t === "completed" || t === "cancelled" ? !0 : this.section?.endTs ? h(this.section.endTs, this.now).expired : !1;
|
|
117
|
+
}
|
|
118
|
+
renderCountdown() {
|
|
119
|
+
const t = this.section?.endTs;
|
|
120
|
+
if (!t) return u;
|
|
121
|
+
if (this.isFinished)
|
|
122
|
+
return p`<span class="ended">🏁 Contest finished</span>`;
|
|
123
|
+
const e = h(t, this.now), s = (i, o) => p`<div class="cell">
|
|
124
|
+
<b>${String(i).padStart(2, "0")}</b><span>${o}</span>
|
|
125
|
+
</div>`;
|
|
126
|
+
return p`
|
|
127
|
+
<div class="countdown">
|
|
128
|
+
<span class="label">Ends in</span>
|
|
129
|
+
${s(e.days, "days")}<span class="sep">:</span>
|
|
130
|
+
${s(e.hours, "hours")}<span class="sep">:</span>
|
|
131
|
+
${s(e.minutes, "min")}<span class="sep">:</span>
|
|
132
|
+
${s(e.seconds, "sec")}
|
|
133
|
+
</div>
|
|
134
|
+
`;
|
|
135
|
+
}
|
|
136
|
+
render() {
|
|
137
|
+
return this.section ? g(this) : u;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
n.styles = [D, y(T)];
|
|
141
|
+
l([
|
|
142
|
+
d({ attribute: !1 })
|
|
143
|
+
], n.prototype, "section", 2);
|
|
144
|
+
l([
|
|
145
|
+
c()
|
|
146
|
+
], n.prototype, "now", 2);
|
|
147
|
+
l([
|
|
148
|
+
c()
|
|
149
|
+
], n.prototype, "poolDisplay", 2);
|
|
150
|
+
l([
|
|
151
|
+
c()
|
|
152
|
+
], n.prototype, "poolBump", 2);
|
|
153
|
+
n = l([
|
|
154
|
+
b({ selector: w })
|
|
155
|
+
], n);
|
|
156
|
+
export {
|
|
157
|
+
n as OsLeaderboardCasinoHero
|
|
158
|
+
};
|
|
159
|
+
//# sourceMappingURL=hero-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hero-section.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/hero-section/hero-section.ts"],"sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { OS_LEADERBOARD_CASINO_HERO } from '@os-leaderboard-casino/constants/tags.js';\nimport { osLeaderboardCasinoTheme } from '@os-leaderboard-casino/theme/index.js';\nimport type { LeaderboardStatus } from '@os-leaderboard-casino/types/data.js';\nimport type { OsLeaderboardCasinoHeroSection } from '@os-leaderboard-casino/types/sections.js';\nimport type { HeroSectionHost } from './hero-section.host.js';\nimport renderTemplate from './hero-section.html?lit-html';\nimport styles from './hero-section.scss?inline';\n\ninterface CountdownParts {\n expired: boolean;\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n}\n\nfunction countdownTo(endTs: string, now = Date.now()): CountdownParts {\n const remaining = Math.floor((new Date(endTs).getTime() - now) / 1000);\n if (!Number.isFinite(remaining) || remaining <= 0) {\n return { expired: true, days: 0, hours: 0, minutes: 0, seconds: 0 };\n }\n return {\n expired: false,\n days: Math.floor(remaining / 86400),\n hours: Math.floor((remaining % 86400) / 3600),\n minutes: Math.floor((remaining % 3600) / 60),\n seconds: remaining % 60,\n };\n}\n\nconst STATUS_LABELS: Record<LeaderboardStatus, string> = {\n upcoming: 'Upcoming',\n active: 'Live',\n completed: 'Finished',\n cancelled: 'Cancelled',\n};\n\n/** Glam hero — golden ring, shimmer title, prize-pool headline, glowing countdown. */\n@Component({ selector: OS_LEADERBOARD_CASINO_HERO })\nexport class OsLeaderboardCasinoHero\n extends LitElement\n implements HeroSectionHost\n{\n static styles = [osLeaderboardCasinoTheme, scss(styles)];\n\n @property({ attribute: false })\n section!: OsLeaderboardCasinoHeroSection;\n\n @state()\n private now = Date.now();\n\n /** Animated odometer value shown for `prizePoolValue`. */\n @state()\n private poolDisplay: number | null = null;\n\n @state()\n poolBump = false;\n\n private timer?: ReturnType<typeof setInterval>;\n private poolRaf?: number;\n private bumpTimer?: ReturnType<typeof setTimeout>;\n\n get showBanner(): boolean {\n return Boolean(this.section?.bannerAsset?.url);\n }\n\n get bannerUrl(): string {\n return this.section?.bannerAsset?.url ?? '';\n }\n\n get bannerAlt(): string {\n return this.section?.bannerAsset?.label || '';\n }\n\n get showStatus(): boolean {\n return Boolean(this.section?.status);\n }\n\n get status(): LeaderboardStatus | undefined {\n return this.section?.status;\n }\n\n get statusLabel(): string {\n const status = this.section?.status;\n return status ? STATUS_LABELS[status] : '';\n }\n\n get showActiveDot(): boolean {\n return this.section?.status === 'active';\n }\n\n get showDescription(): boolean {\n return Boolean(this.section?.description);\n }\n\n get showPool(): boolean {\n return this.poolDisplay != null || Boolean(this.section?.prizePool);\n }\n\n get poolValueLabel(): string {\n if (this.poolDisplay != null) return this.formatPool(this.poolDisplay);\n return this.section?.prizePool ?? '';\n }\n\n get poolLabel(): string {\n return this.section?.prizePoolLabel ?? 'Total prize pool';\n }\n\n get showRising(): boolean {\n return this.poolDisplay != null;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.timer = setInterval(() => {\n this.now = Date.now();\n }, 1000);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.timer) clearInterval(this.timer);\n if (this.poolRaf) cancelAnimationFrame(this.poolRaf);\n if (this.bumpTimer) clearTimeout(this.bumpTimer);\n }\n\n willUpdate(changed: Map<string, unknown>) {\n if (!changed.has('section')) return;\n const target = this.section?.prizePoolValue;\n if (target == null) {\n this.poolDisplay = null;\n return;\n }\n if (this.poolDisplay == null) {\n this.poolDisplay = target;\n return;\n }\n if (target !== this.poolDisplay) this.animatePool(target);\n }\n\n /** Rolling count-up from the current display value to `target`. */\n private animatePool(target: number) {\n if (this.poolRaf) cancelAnimationFrame(this.poolRaf);\n const from = this.poolDisplay ?? target;\n const duration = 1100;\n const start = performance.now();\n const tick = (t: number) => {\n const p = Math.min(1, (t - start) / duration);\n const eased = 1 - Math.pow(1 - p, 3);\n this.poolDisplay = Math.round(from + (target - from) * eased);\n if (p < 1) this.poolRaf = requestAnimationFrame(tick);\n };\n this.poolRaf = requestAnimationFrame(tick);\n\n if (target > from) {\n this.poolBump = true;\n if (this.bumpTimer) clearTimeout(this.bumpTimer);\n this.bumpTimer = setTimeout(() => {\n this.poolBump = false;\n }, 650);\n }\n }\n\n private formatPool(value: number): string {\n try {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: this.section?.prizePoolCurrency ?? 'USD',\n maximumFractionDigits: 0,\n }).format(value);\n } catch {\n return value.toLocaleString();\n }\n }\n\n private get isFinished(): boolean {\n const status = this.section?.status;\n if (status === 'completed' || status === 'cancelled') return true;\n if (!this.section?.endTs) return false;\n return countdownTo(this.section.endTs, this.now).expired;\n }\n\n renderCountdown() {\n const endTs = this.section?.endTs;\n if (!endTs) return nothing;\n\n if (this.isFinished) {\n return html`<span class=\"ended\">🏁 Contest finished</span>`;\n }\n\n const c = countdownTo(endTs, this.now);\n const cell = (v: number, label: string) =>\n html`<div class=\"cell\">\n <b>${String(v).padStart(2, '0')}</b><span>${label}</span>\n </div>`;\n\n return html`\n <div class=\"countdown\">\n <span class=\"label\">Ends in</span>\n ${cell(c.days, 'days')}<span class=\"sep\">:</span>\n ${cell(c.hours, 'hours')}<span class=\"sep\">:</span>\n ${cell(c.minutes, 'min')}<span class=\"sep\">:</span>\n ${cell(c.seconds, 'sec')}\n </div>\n `;\n }\n\n render() {\n if (!this.section) return nothing;\n return renderTemplate(this);\n }\n}\n"],"names":["countdownTo","endTs","now","remaining","STATUS_LABELS","OsLeaderboardCasinoHero","LitElement","status","changed","target","from","duration","start","tick","t","p","eased","value","nothing","html","c","cell","v","label","renderTemplate","osLeaderboardCasinoTheme","scss","styles","__decorateClass","property","state","Component","OS_LEADERBOARD_CASINO_HERO"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const e = ':host{display:block;width:100%}.hero{position:relative;overflow:hidden;border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:radial-gradient(90% 130% at 50% -20%,color-mix(in srgb,var(--violet) 22%,transparent),transparent 55%),radial-gradient(70% 110% at 12% 110%,color-mix(in srgb,var(--gold) 16%,transparent),transparent 58%),radial-gradient(65% 100% at 88% 108%,color-mix(in srgb,var(--gold) 12%,transparent),transparent 62%),var(--panel-bg);box-shadow:var(--panel-shadow);text-align:center;padding:clamp(26px,5vw,44px) clamp(18px,4vw,36px) clamp(22px,4vw,34px)}.hero:before{content:"";position:absolute;top:120%;left:50%;width:150%;aspect-ratio:1;transform:translate(-50%,-50%);transform-origin:50% 50%;background:conic-gradient(from 0deg,transparent 0deg,transparent 45deg,color-mix(in srgb,var(--gold) 24%,transparent) 55deg,color-mix(in srgb,var(--gold) 20%,transparent) 58deg,transparent 67deg,transparent 198deg,color-mix(in srgb,var(--violet) 22%,transparent) 208deg,color-mix(in srgb,var(--violet) 16%,transparent) 211deg,transparent 220deg,transparent 360deg);filter:blur(28px);opacity:.92;animation:halo 16s linear infinite;pointer-events:none;z-index:0}@keyframes halo{to{transform:translate(-50%,-50%) rotate(360deg)}}@media(max-width:640px){.hero:before{top:100%;width:215%}}.banner-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;z-index:0}.inner{position:relative;z-index:1}.status{display:inline-flex;align-items:center;gap:7px;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:6px 14px;border-radius:999px;background:var(--panel-bg);border:1px solid var(--panel-border);color:var(--text-dim)}.status.active{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,transparent)}.status.active .dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 1.6s ease-in-out infinite}.status.completed{color:var(--gold);border-color:var(--hairline-gold)}.status.cancelled{color:var(--red)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}h2{margin:16px 0 0;font-family:var(--font-display);font-size:clamp(26px,5.4vw,40px);font-weight:800;letter-spacing:-.02em;line-height:1.12;background:var(--gold-gradient);background-size:200% auto;background-position:0% center;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 5.5s linear infinite;text-wrap:balance}@keyframes shimmer{0%{background-position:0% center}to{background-position:200% center}}.description{margin:12px auto 0;font-size:13.5px;line-height:1.6;color:var(--text-dim);max-width:52ch}.pool{margin-top:22px;display:inline-flex;flex-direction:column;align-items:center;gap:4px;padding:14px 34px;border-radius:16px;background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow)}.pool .label{font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint)}.pool .value{font-family:var(--font-mono);font-size:clamp(28px,5vw,38px);font-weight:800;color:var(--gold-strong);text-shadow:0 0 26px var(--gold-glow);line-height:1.1;font-variant-numeric:tabular-nums;transition:text-shadow .3s ease}.pool .value.bump{animation:pool-bump .6s ease}@keyframes pool-bump{0%{transform:scale(1)}35%{transform:scale(1.06);text-shadow:0 0 42px var(--gold-glow),0 0 12px var(--gold-strong)}to{transform:scale(1)}}.pool .rising{display:inline-flex;align-items:center;gap:4px;margin-top:2px;font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--green)}.pool .rising i{width:5px;height:5px;border-radius:50%;background:var(--green);animation:pulse 1.6s ease-in-out infinite}.countdown{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:22px;flex-wrap:wrap}.countdown .label{width:100%;font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);margin-bottom:2px}.cell{min-width:60px;text-align:center;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius-sm);padding:9px 10px 8px}.cell b{display:block;font-family:var(--font-mono);font-size:21px;font-weight:800;color:var(--text);line-height:1.1}.cell span{display:block;margin-top:3px;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.sep{font-family:var(--font-mono);font-size:18px;font-weight:800;color:var(--gold);opacity:.7}@media(max-width:480px){.cell{min-width:48px;padding:8px 6px 7px}.cell b{font-size:18px}.countdown{gap:5px}.sep{font-size:15px}}.ended{display:inline-flex;align-items:center;gap:8px;margin-top:22px;padding:10px 20px;border-radius:var(--radius-sm);background:var(--gold-soft);border:1px solid var(--hairline-gold);color:var(--gold);font-weight:700;font-size:14px}';
|
|
2
|
+
export {
|
|
3
|
+
e as default
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=hero-section.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hero-section.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { html as i } from "lit";
|
|
2
|
+
function e(l) {
|
|
3
|
+
return i`<div class="legals">
|
|
4
|
+
<nav class="legals__links">
|
|
5
|
+
${l.renderLinks()}
|
|
6
|
+
</nav>
|
|
7
|
+
<dialog @click=${l.onDialogClick}>
|
|
8
|
+
<div class="dialog-panel">
|
|
9
|
+
<div class="dialog-header">
|
|
10
|
+
<span class="dialog-title">${l.dialogTitle}</span>
|
|
11
|
+
<button
|
|
12
|
+
class="dialog-close"
|
|
13
|
+
type="button"
|
|
14
|
+
aria-label="Close"
|
|
15
|
+
@click=${l.onDialogClose}
|
|
16
|
+
>
|
|
17
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
|
|
18
|
+
<path d="M2 2l10 10M12 2L2 12" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
19
|
+
</svg>
|
|
20
|
+
</button>
|
|
21
|
+
</div>
|
|
22
|
+
<div class="dialog-body">
|
|
23
|
+
<p>${l.renderDialogContent()}</p>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</dialog>
|
|
27
|
+
</div>
|
|
28
|
+
`;
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
e as default
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=legals-section.html.js.map
|
package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.html.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legals-section.html.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/legals-section/legals-section.html?lit-html"],"sourcesContent":["\nimport { html } from 'lit';\n\nexport default function render(host) {\n return html`<div class=\"legals\">\n <nav class=\"legals__links\">\n ${host.renderLinks()}\n </nav>\n <dialog @click=${host.onDialogClick}>\n <div class=\"dialog-panel\">\n <div class=\"dialog-header\">\n <span class=\"dialog-title\">${host.dialogTitle}</span>\n <button\n class=\"dialog-close\"\n type=\"button\"\n aria-label=\"Close\"\n @click=${host.onDialogClose}\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M2 2l10 10M12 2L2 12\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n </button>\n </div>\n <div class=\"dialog-body\">\n <p>${host.renderDialogContent()}</p>\n </div>\n </div>\n </dialog>\n</div>\n`;\n}\n"],"names":["render","host","html"],"mappings":";AAGe,SAASA,EAAOC,GAAM;AACnC,SAAOC;AAAA;AAAA,MAEHD,EAAK,YAAW,CAAE;AAAA;AAAA,mBAELA,EAAK,aAAa;AAAA;AAAA;AAAA,qCAGAA,EAAK,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,mBAKlCA,EAAK,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAQxBA,EAAK,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAMvC;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { LitElement as c, html as p, nothing as d } from "lit";
|
|
2
|
+
import { property as h, state as m, query as g } from "lit/decorators.js";
|
|
3
|
+
import { Component as u } from "../../../../shared/lib/lit/component.js";
|
|
4
|
+
import { scss as f } from "../../../../shared/lib/lit/scss.js";
|
|
5
|
+
import { OS_LEADERBOARD_CASINO_LEGALS as _ } from "../../constants/tags.js";
|
|
6
|
+
import { osLeaderboardCasinoTheme as b } from "../../theme/styles.js";
|
|
7
|
+
import L from "./legals-section.html.js";
|
|
8
|
+
import v from "./legals-section.scss.js";
|
|
9
|
+
var k = Object.defineProperty, C = Object.getOwnPropertyDescriptor, a = (e, t, r, n) => {
|
|
10
|
+
for (var i = n > 1 ? void 0 : n ? C(t, r) : t, s = e.length - 1, l; s >= 0; s--)
|
|
11
|
+
(l = e[s]) && (i = (n ? l(t, r, i) : l(i)) || i);
|
|
12
|
+
return n && i && k(t, r, i), i;
|
|
13
|
+
};
|
|
14
|
+
const w = "This promotion is open to all registered players aged 18 or over. Participation is subject to the standard Terms & Conditions applicable to all promotions. Prize winnings are credited as bonus funds and are subject to a 20× wagering requirement before withdrawal. The leaderboard is updated in real time and rankings are final at the time the campaign ends. The operator reserves the right to amend or cancel this promotion at any time without prior notice. Responsible gambling tools are available in your account settings at all times.";
|
|
15
|
+
let o = class extends c {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments), this._activeLink = null, this.onDialogClose = () => {
|
|
18
|
+
this._activeLink = null;
|
|
19
|
+
}, this.onDialogClick = (e) => {
|
|
20
|
+
e.target === this._dialog && (this._activeLink = null);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
get dialogTitle() {
|
|
24
|
+
return this._activeLink?.label ?? "";
|
|
25
|
+
}
|
|
26
|
+
get dialogContent() {
|
|
27
|
+
return this._activeLink?.content ?? w;
|
|
28
|
+
}
|
|
29
|
+
renderDialogContent() {
|
|
30
|
+
return this.dialogContent.split(/<br\s*\/?>/).flatMap(
|
|
31
|
+
(e, t, r) => t < r.length - 1 ? [e, p`<br />`] : [e]
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
updated(e) {
|
|
35
|
+
if (super.updated(e), e.has("_activeLink")) {
|
|
36
|
+
const t = this._dialog;
|
|
37
|
+
if (!t) return;
|
|
38
|
+
this._activeLink && !t.open ? t.showModal() : !this._activeLink && t.open && t.close();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
_onLinkClick(e) {
|
|
42
|
+
e.type === "external" ? window.open(e.href ?? "https://www.google.com", "_blank", "noopener,noreferrer") : this._activeLink = e;
|
|
43
|
+
}
|
|
44
|
+
renderLinks() {
|
|
45
|
+
return p`${this.section.links.map(
|
|
46
|
+
(e) => p`<button
|
|
47
|
+
class="legal-link"
|
|
48
|
+
type="button"
|
|
49
|
+
@click=${() => this._onLinkClick(e)}
|
|
50
|
+
>${e.label}</button>`
|
|
51
|
+
)}`;
|
|
52
|
+
}
|
|
53
|
+
render() {
|
|
54
|
+
return this.section?.links?.length ? L(this) : d;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
o.styles = [b, f(v)];
|
|
58
|
+
a([
|
|
59
|
+
h({ attribute: !1 })
|
|
60
|
+
], o.prototype, "section", 2);
|
|
61
|
+
a([
|
|
62
|
+
m()
|
|
63
|
+
], o.prototype, "_activeLink", 2);
|
|
64
|
+
a([
|
|
65
|
+
g("dialog")
|
|
66
|
+
], o.prototype, "_dialog", 2);
|
|
67
|
+
o = a([
|
|
68
|
+
u({ selector: _ })
|
|
69
|
+
], o);
|
|
70
|
+
export {
|
|
71
|
+
o as OsLeaderboardCasinoLegals
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=legals-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legals-section.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/legals-section/legals-section.ts"],"sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, state, query } from 'lit/decorators.js';\nimport { Component } from '@oddsmith/lib/lit/component.js';\nimport { scss } from '@oddsmith/lib/lit/scss.js';\nimport { OS_LEADERBOARD_CASINO_LEGALS } from '@os-leaderboard-casino/constants/tags.js';\nimport { osLeaderboardCasinoTheme } from '@os-leaderboard-casino/theme/index.js';\nimport type {\n OsLeaderboardCasinoLegalLink,\n OsLeaderboardCasinoLegalsSection,\n} from '@os-leaderboard-casino/types/sections.js';\nimport type { LegalsSectionHost } from './legals-section.host.js';\nimport renderTemplate from './legals-section.html?lit-html';\nimport styles from './legals-section.scss?inline';\n\nconst DEFAULT_DIALOG_CONTENT =\n 'This promotion is open to all registered players aged 18 or over. Participation is subject to the standard Terms & Conditions applicable to all promotions. Prize winnings are credited as bonus funds and are subject to a 20× wagering requirement before withdrawal. The leaderboard is updated in real time and rankings are final at the time the campaign ends. The operator reserves the right to amend or cancel this promotion at any time without prior notice. Responsible gambling tools are available in your account settings at all times.';\n\n@Component({ selector: OS_LEADERBOARD_CASINO_LEGALS })\nexport class OsLeaderboardCasinoLegals\n extends LitElement\n implements LegalsSectionHost\n{\n static styles = [osLeaderboardCasinoTheme, scss(styles)];\n\n @property({ attribute: false })\n section!: OsLeaderboardCasinoLegalsSection;\n\n @state()\n private _activeLink: OsLeaderboardCasinoLegalLink | null = null;\n\n @query('dialog')\n private _dialog!: HTMLDialogElement;\n\n get dialogTitle(): string {\n return this._activeLink?.label ?? '';\n }\n\n get dialogContent(): string {\n return this._activeLink?.content ?? DEFAULT_DIALOG_CONTENT;\n }\n\n renderDialogContent() {\n return this.dialogContent.split(/<br\\s*\\/?>/).flatMap((part, i, arr) =>\n i < arr.length - 1 ? [part, html`<br />`] : [part],\n );\n }\n\n protected updated(changedProps: Map<string, unknown>): void {\n super.updated(changedProps);\n if (changedProps.has('_activeLink')) {\n const dialog = this._dialog;\n if (!dialog) return;\n if (this._activeLink && !dialog.open) {\n dialog.showModal();\n } else if (!this._activeLink && dialog.open) {\n dialog.close();\n }\n }\n }\n\n readonly onDialogClose = () => {\n this._activeLink = null;\n };\n\n readonly onDialogClick = (e: MouseEvent) => {\n if (e.target === this._dialog) {\n this._activeLink = null;\n }\n };\n\n private _onLinkClick(link: OsLeaderboardCasinoLegalLink): void {\n if (link.type === 'external') {\n window.open(link.href ?? 'https://www.google.com', '_blank', 'noopener,noreferrer');\n } else {\n this._activeLink = link;\n }\n }\n\n renderLinks() {\n return html`${this.section.links.map(\n (link) =>\n html`<button\n class=\"legal-link\"\n type=\"button\"\n @click=${() => this._onLinkClick(link)}\n >${link.label}</button>`,\n )}`;\n }\n\n render() {\n if (!this.section?.links?.length) return nothing;\n return renderTemplate(this);\n }\n}\n"],"names":["DEFAULT_DIALOG_CONTENT","OsLeaderboardCasinoLegals","LitElement","part","i","arr","html","changedProps","dialog","link","renderTemplate","nothing","osLeaderboardCasinoTheme","scss","styles","__decorateClass","property","state","query","Component","OS_LEADERBOARD_CASINO_LEGALS"],"mappings":";;;;;;;;;;;;;AAcA,MAAMA,IACJ;AAGK,IAAMC,IAAN,cACGC,EAEV;AAAA,EAHO,cAAA;AAAA,UAAA,GAAA,SAAA,GAUL,KAAQ,cAAmD,MAgC3D,KAAS,gBAAgB,MAAM;AAC7B,WAAK,cAAc;AAAA,IACrB,GAEA,KAAS,gBAAgB,CAAC,MAAkB;AAC1C,MAAI,EAAE,WAAW,KAAK,YACpB,KAAK,cAAc;AAAA,IAEvB;AAAA,EAAA;AAAA,EAnCA,IAAI,cAAsB;AACxB,WAAO,KAAK,aAAa,SAAS;AAAA,EACpC;AAAA,EAEA,IAAI,gBAAwB;AAC1B,WAAO,KAAK,aAAa,WAAWF;AAAA,EACtC;AAAA,EAEA,sBAAsB;AACpB,WAAO,KAAK,cAAc,MAAM,YAAY,EAAE;AAAA,MAAQ,CAACG,GAAMC,GAAGC,MAC9DD,IAAIC,EAAI,SAAS,IAAI,CAACF,GAAMG,SAAY,IAAI,CAACH,CAAI;AAAA,IAAA;AAAA,EAErD;AAAA,EAEU,QAAQI,GAA0C;AAE1D,QADA,MAAM,QAAQA,CAAY,GACtBA,EAAa,IAAI,aAAa,GAAG;AACnC,YAAMC,IAAS,KAAK;AACpB,UAAI,CAACA,EAAQ;AACb,MAAI,KAAK,eAAe,CAACA,EAAO,OAC9BA,EAAO,UAAA,IACE,CAAC,KAAK,eAAeA,EAAO,QACrCA,EAAO,MAAA;AAAA,IAEX;AAAA,EACF;AAAA,EAYQ,aAAaC,GAA0C;AAC7D,IAAIA,EAAK,SAAS,aAChB,OAAO,KAAKA,EAAK,QAAQ,0BAA0B,UAAU,qBAAqB,IAElF,KAAK,cAAcA;AAAA,EAEvB;AAAA,EAEA,cAAc;AACZ,WAAOH,IAAO,KAAK,QAAQ,MAAM;AAAA,MAC/B,CAACG,MACCH;AAAA;AAAA;AAAA,mBAGW,MAAM,KAAK,aAAaG,CAAI,CAAC;AAAA,WACrCA,EAAK,KAAK;AAAA,IAAA,CAChB;AAAA,EACH;AAAA,EAEA,SAAS;AACP,WAAK,KAAK,SAAS,OAAO,SACnBC,EAAe,IAAI,IADeC;AAAA,EAE3C;AACF;AA3EaV,EAIJ,SAAS,CAACW,GAA0BC,EAAKC,CAAM,CAAC;AAGvDC,EAAA;AAAA,EADCC,EAAS,EAAE,WAAW,GAAA,CAAO;AAAA,GANnBf,EAOX,WAAA,WAAA,CAAA;AAGQc,EAAA;AAAA,EADPE,EAAA;AAAM,GATIhB,EAUH,WAAA,eAAA,CAAA;AAGAc,EAAA;AAAA,EADPG,EAAM,QAAQ;AAAA,GAZJjB,EAaH,WAAA,WAAA,CAAA;AAbGA,IAANc,EAAA;AAAA,EADNI,EAAU,EAAE,UAAUC,EAAA,CAA8B;AAAA,GACxCnB,CAAA;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const o = '@charset "UTF-8";:host{display:block;width:100%}.legals__links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 24px;margin-top:20px}.legal-link{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:13.5px;font-weight:800;color:var(--gold);text-decoration:none;transition:color var(--transition-fast)}.legal-link:hover{color:var(--gold-strong);text-shadow:0 0 12px var(--gold-glow)}dialog{border:1px solid var(--panel-border);border-radius:var(--radius-sm);background:var(--surface-solid);color:var(--text);padding:0;width:min(480px,90vw);max-height:80vh;overflow:hidden;box-shadow:var(--shadow)}dialog::backdrop{background:#000000a6;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.dialog-panel{display:flex;flex-direction:column;max-height:80vh}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--hairline);flex:none}.dialog-title{font-family:var(--font-display);font-size:15px;font-weight:800;letter-spacing:.02em;color:var(--text)}.dialog-close{flex:none;display:grid;place-items:center;width:28px;height:28px;background:#ffffff0f;border:1px solid var(--hairline);border-radius:8px;cursor:pointer;color:var(--text-dim);padding:0;transition:background var(--transition-fast),color var(--transition-fast)}.dialog-close:hover{background:#ffffff1c;color:var(--text)}.dialog-body{padding:20px 22px 26px;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--violet) 30%,transparent) transparent}.dialog-body::-webkit-scrollbar{width:3px}.dialog-body::-webkit-scrollbar-track{background:transparent}.dialog-body::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--violet) 35%,transparent);border-radius:99px}.dialog-body p{margin:0;font-size:13.5px;line-height:1.8;color:var(--text-dim);letter-spacing:.01em}';
|
|
2
|
+
export {
|
|
3
|
+
o as default
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=legals-section.scss.js.map
|
package/dist/components/os-leaderboard-casino/sections/legals-section/legals-section.scss.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legals-section.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"win-icons.js","sources":["../../../../../../src/components/os-leaderboard-casino/sections/marquee-section/components/win-icons.ts"],"sourcesContent":["import type { TemplateResult } from 'lit';\nimport { winIcon as loadWinIcon } from '@os-leaderboard-casino/services/icon.service.js';\n\nexport type WinIconName = 'bag' | 'coin' | 'trophy' | 'fire' | 'gem' | 'bolt';\n\nexport function winIcon(name: WinIconName): TemplateResult {\n return loadWinIcon(name);\n}\n"],"names":["winIcon","name","loadWinIcon"],"mappings":";AAKO,SAASA,EAAQC,GAAmC;AACzD,SAAOC,EAAYD,CAAI;AACzB;"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
const c = [
|
|
2
|
+
"coin",
|
|
3
|
+
"bolt",
|
|
4
|
+
"trophy",
|
|
5
|
+
"gem",
|
|
6
|
+
"fire",
|
|
7
|
+
"bag"
|
|
8
|
+
];
|
|
9
|
+
function s(r, n) {
|
|
10
|
+
const e = r.text.match(/^(.+?)\s+won(?:\s+\$[\d,]+)?\s+on\s+(.+)$/i), o = e?.[1]?.trim() ?? r.text, a = e?.[2]?.trim() ?? "", t = r.amount ?? null;
|
|
11
|
+
return {
|
|
12
|
+
user: o,
|
|
13
|
+
game: a,
|
|
14
|
+
gameId: r.gameId,
|
|
15
|
+
big: (t ?? 0) >= 5e3,
|
|
16
|
+
icon: u(r.icon, n),
|
|
17
|
+
amount: t,
|
|
18
|
+
currency: r.currency ?? "USD",
|
|
19
|
+
vip: r.vip ?? !1
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function u(r, n) {
|
|
23
|
+
switch (r) {
|
|
24
|
+
case "💰":
|
|
25
|
+
case "🪙":
|
|
26
|
+
return "coin";
|
|
27
|
+
case "⚡":
|
|
28
|
+
return "bolt";
|
|
29
|
+
case "🏆":
|
|
30
|
+
return "trophy";
|
|
31
|
+
case "💎":
|
|
32
|
+
return "gem";
|
|
33
|
+
case "🔥":
|
|
34
|
+
return "fire";
|
|
35
|
+
case "🎰":
|
|
36
|
+
return "bag";
|
|
37
|
+
default:
|
|
38
|
+
return c[n % c.length];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function i(r, n) {
|
|
42
|
+
if (r == null) return "";
|
|
43
|
+
try {
|
|
44
|
+
return new Intl.NumberFormat("en-US", {
|
|
45
|
+
style: "currency",
|
|
46
|
+
currency: n,
|
|
47
|
+
maximumFractionDigits: 0
|
|
48
|
+
}).format(r);
|
|
49
|
+
} catch {
|
|
50
|
+
return `$${r.toLocaleString("en-US")}`;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export {
|
|
54
|
+
i as formatWinAmount,
|
|
55
|
+
s as parseMarqueeItem
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=marquee-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marquee-item.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/marquee-section/marquee-item.ts"],"sourcesContent":["import type { OsLeaderboardCasinoMarqueeItem } from '@os-leaderboard-casino/types/sections.js';\nimport type { WinIconName } from './components/win-icons.js';\n\nconst ICON_CYCLE: WinIconName[] = [\n 'coin',\n 'bolt',\n 'trophy',\n 'gem',\n 'fire',\n 'bag',\n];\n\nexport interface ParsedMarqueeWin {\n user: string;\n game: string;\n gameId?: string;\n big: boolean;\n icon: WinIconName;\n amount: number | null;\n currency: string;\n vip: boolean;\n}\n\nexport function parseMarqueeItem(\n item: OsLeaderboardCasinoMarqueeItem,\n index: number,\n): ParsedMarqueeWin {\n const onMatch = item.text.match(/^(.+?)\\s+won(?:\\s+\\$[\\d,]+)?\\s+on\\s+(.+)$/i);\n const user = onMatch?.[1]?.trim() ?? item.text;\n const game = onMatch?.[2]?.trim() ?? '';\n const amount = item.amount ?? null;\n\n return {\n user,\n game,\n gameId: item.gameId,\n big: (amount ?? 0) >= 5000,\n icon: resolveIcon(item.icon, index),\n amount,\n currency: item.currency ?? 'USD',\n vip: item.vip ?? false,\n };\n}\n\nfunction resolveIcon(icon: string | undefined, index: number): WinIconName {\n switch (icon) {\n case '💰':\n case '🪙':\n return 'coin';\n case '⚡':\n return 'bolt';\n case '🏆':\n return 'trophy';\n case '💎':\n return 'gem';\n case '🔥':\n return 'fire';\n case '🎰':\n return 'bag';\n default:\n return ICON_CYCLE[index % ICON_CYCLE.length];\n }\n}\n\nexport function formatWinAmount(\n amount: number | null,\n currency: string,\n): string {\n if (amount == null) return '';\n try {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n maximumFractionDigits: 0,\n }).format(amount);\n } catch {\n return `$${amount.toLocaleString('en-US')}`;\n }\n}\n"],"names":["ICON_CYCLE","parseMarqueeItem","item","index","onMatch","user","game","amount","resolveIcon","icon","formatWinAmount","currency"],"mappings":"AAGA,MAAMA,IAA4B;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAaO,SAASC,EACdC,GACAC,GACkB;AAClB,QAAMC,IAAUF,EAAK,KAAK,MAAM,4CAA4C,GACtEG,IAAOD,IAAU,CAAC,GAAG,KAAA,KAAUF,EAAK,MACpCI,IAAOF,IAAU,CAAC,GAAG,UAAU,IAC/BG,IAASL,EAAK,UAAU;AAE9B,SAAO;AAAA,IACL,MAAAG;AAAA,IACA,MAAAC;AAAA,IACA,QAAQJ,EAAK;AAAA,IACb,MAAMK,KAAU,MAAM;AAAA,IACtB,MAAMC,EAAYN,EAAK,MAAMC,CAAK;AAAA,IAClC,QAAAI;AAAA,IACA,UAAUL,EAAK,YAAY;AAAA,IAC3B,KAAKA,EAAK,OAAO;AAAA,EAAA;AAErB;AAEA,SAASM,EAAYC,GAA0BN,GAA4B;AACzE,UAAQM,GAAA;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAOT,EAAWG,IAAQH,EAAW,MAAM;AAAA,EAAA;AAEjD;AAEO,SAASU,EACdH,GACAI,GACQ;AACR,MAAIJ,KAAU,KAAM,QAAO;AAC3B,MAAI;AACF,WAAO,IAAI,KAAK,aAAa,SAAS;AAAA,MACpC,OAAO;AAAA,MACP,UAAAI;AAAA,MACA,uBAAuB;AAAA,IAAA,CACxB,EAAE,OAAOJ,CAAM;AAAA,EAClB,QAAQ;AACN,WAAO,IAAIA,EAAO,eAAe,OAAO,CAAC;AAAA,EAC3C;AACF;"}
|
package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { html as r } from "lit";
|
|
2
|
+
function d(e) {
|
|
3
|
+
return r`<div
|
|
4
|
+
class="marquee"
|
|
5
|
+
style="--speed: ${e.speedSec}s"
|
|
6
|
+
role="region"
|
|
7
|
+
aria-label="Recent winners"
|
|
8
|
+
>
|
|
9
|
+
${e.renderHudLabel()}
|
|
10
|
+
<div class="track">${e.renderTrack()}</div>
|
|
11
|
+
</div>
|
|
12
|
+
`;
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
d as default
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=marquee-section.html.js.map
|
package/dist/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marquee-section.html.js","sources":["../../../../../src/components/os-leaderboard-casino/sections/marquee-section/marquee-section.html?lit-html"],"sourcesContent":["\nimport { html } from 'lit';\n\nexport default function render(host) {\n return html`<div\n class=\"marquee\"\n style=\"--speed: ${host.speedSec}s\"\n role=\"region\"\n aria-label=\"Recent winners\"\n>\n ${host.renderHudLabel()}\n <div class=\"track\">${host.renderTrack()}</div>\n</div>\n`;\n}\n"],"names":["render","host","html"],"mappings":";AAGe,SAASA,EAAOC,GAAM;AACnC,SAAOC;AAAA;AAAA,oBAEWD,EAAK,QAAQ;AAAA;AAAA;AAAA;AAAA,IAI7BA,EAAK,eAAc,CAAE;AAAA,uBACFA,EAAK,aAAa;AAAA;AAAA;AAGzC;"}
|