jaml-ui 0.24.20 → 0.25.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/README.md +0 -13
- package/assets/WeeJokerExampleDAilyGame.png +0 -0
- package/assets/balatro-stake-chips.png +0 -0
- package/dist/assets.d.ts +1 -2
- package/dist/chunks/Layer-BBPJFHfs.js +17 -0
- package/dist/chunks/Layer-BBPJFHfs.js.map +1 -0
- package/dist/chunks/assets-RWUiFSTc.js +37 -0
- package/dist/chunks/assets-RWUiFSTc.js.map +1 -0
- package/dist/chunks/motelyItemDecoder-CueyZ0XD.js +6039 -0
- package/dist/chunks/motelyItemDecoder-CueyZ0XD.js.map +1 -0
- package/dist/chunks/spriteMapper-CFjN0_TV.js +2415 -0
- package/dist/chunks/spriteMapper-CFjN0_TV.js.map +1 -0
- package/dist/chunks/tokens-B65Fzble.js +57 -0
- package/dist/chunks/tokens-B65Fzble.js.map +1 -0
- package/dist/chunks/ui-5cBy3zAm.js +1387 -0
- package/dist/chunks/ui-5cBy3zAm.js.map +1 -0
- package/dist/components/AnalyzerExplorer.d.ts +1 -1
- package/dist/components/CardFan.d.ts +1 -1
- package/dist/components/CardList.d.ts +1 -1
- package/dist/components/DeckSprite.d.ts +1 -1
- package/dist/components/JamlAestheticSelector.d.ts +1 -1
- package/dist/components/JamlAnalyzerFullscreen.d.ts +5 -5
- package/dist/components/JamlCurator.d.ts +1 -1
- package/dist/components/JamlIde.d.ts +5 -5
- package/dist/components/JamlSeedInput.d.ts +1 -1
- package/dist/components/JamlSpeedometer.d.ts +1 -1
- package/dist/components/MotelyVersionBadge.d.ts +1 -1
- package/dist/components/Standardcard.d.ts +1 -1
- package/dist/components/jamlMap/CategoryPicker.d.ts +3 -3
- package/dist/components/jamlMap/JamlMapEditor.d.ts +1 -1
- package/dist/components/jamlMap/JokerPicker.d.ts +1 -1
- package/dist/components/jamlMap/MysterySlot.d.ts +2 -2
- package/dist/components/jamlMap/index.d.ts +4 -4
- package/dist/core.d.ts +5 -5
- package/dist/core.js +27 -5
- package/dist/core.js.map +1 -0
- package/dist/decode/motelyItemDecoder.d.ts +0 -10
- package/dist/decode/motelySprite.d.ts +1 -1
- package/dist/fonts/m6x11plus.otf +0 -0
- package/dist/hooks/analyzerStreamRegistry.d.ts +2 -2
- package/dist/hooks/useAnalyzer.d.ts +2 -2
- package/dist/hooks/useSearch.d.ts +2 -2
- package/dist/index.d.ts +29 -31
- package/dist/index.js +16725 -34
- package/dist/index.js.map +1 -0
- package/dist/lib/const.d.ts +2 -2
- package/dist/lib/hooks/useDragScroll.d.ts +1 -1
- package/dist/lib/hooks/useJamlFilter.d.ts +2 -2
- package/dist/lib/hooks/useSeedAnalyzer.d.ts +2 -2
- package/dist/lib/utils.d.ts +1 -1
- package/dist/motely.d.ts +4 -3
- package/dist/motely.js +65 -3
- package/dist/motely.js.map +1 -0
- package/dist/motelyBoot.d.ts +2 -0
- package/dist/motelyDisplay.d.ts +0 -2
- package/dist/r3f/Card3D.d.ts +2 -2
- package/dist/r3f/JimboBillboard.d.ts +1 -1
- package/dist/r3f.js +235 -3
- package/dist/r3f.js.map +1 -0
- package/dist/render/CanvasRenderer.d.ts +1 -1
- package/dist/sprites/spriteData.d.ts +1 -6
- package/dist/sprites/spriteMapper.d.ts +1 -1
- package/dist/ui/JimboBadge.d.ts +1 -1
- package/dist/ui/JimboFloating.d.ts +1 -1
- package/dist/ui/JimboIconButton.d.ts +1 -1
- package/dist/ui/JimboSelect.d.ts +1 -1
- package/dist/ui/footer.d.ts +2 -3
- package/dist/ui/hooks.d.ts +1 -1
- package/dist/ui/ide/DeckSprite.d.ts +1 -1
- package/dist/ui/jimbo.css +2 -1856
- package/dist/ui/jimboApp.d.ts +1 -1
- package/dist/ui/jimboFilterBar.d.ts +1 -1
- package/dist/ui/jimboFlankNav.d.ts +1 -1
- package/dist/ui/jimboInfoCard.d.ts +1 -1
- package/dist/ui/jimboInset.d.ts +1 -1
- package/dist/ui/jimboStatGrid.d.ts +1 -1
- package/dist/ui/jimboText.d.ts +1 -1
- package/dist/ui/jimboTooltip.d.ts +2 -2
- package/dist/ui/mascot/SeedMascot.d.ts +2 -2
- package/dist/ui/panel.d.ts +1 -1
- package/dist/ui/radial/RadialBadge.d.ts +1 -2
- package/dist/ui/radial/RadialButton.d.ts +1 -2
- package/dist/ui/radial/RadialMenu.d.ts +2 -2
- package/dist/ui/radial/RadialPill.d.ts +1 -2
- package/dist/ui/radial/index.d.ts +16 -16
- package/dist/ui/radial/radialMenuStore.d.ts +1 -1
- package/dist/ui/showcase.d.ts +1 -1
- package/dist/ui/sprites.d.ts +2 -2
- package/dist/ui.d.ts +0 -1
- package/dist/ui.js +3 -36
- package/dist/utils/gameCardUtils.d.ts +1 -1
- package/dist/utils/jamlVisualFilter.d.ts +1 -7
- package/package.json +13 -25
- package/dist/assets.js +0 -48
- package/dist/components/AnalyzerExplorer.js +0 -391
- package/dist/components/CardFan.js +0 -80
- package/dist/components/CardList.js +0 -5
- package/dist/components/DeckSprite.js +0 -75
- package/dist/components/GameCard.js +0 -355
- package/dist/components/JamlAestheticSelector.js +0 -22
- package/dist/components/JamlAnalyzerFullscreen.js +0 -263
- package/dist/components/JamlCodeEditor.js +0 -137
- package/dist/components/JamlCurator.js +0 -64
- package/dist/components/JamlCurator.stories.d.ts +0 -6
- package/dist/components/JamlCurator.stories.js +0 -14
- package/dist/components/JamlIde.js +0 -193
- package/dist/components/JamlIdeToolbar.js +0 -23
- package/dist/components/JamlIdeVisual.js +0 -218
- package/dist/components/JamlMapPreview.js +0 -121
- package/dist/components/JamlSeedInput.js +0 -26
- package/dist/components/JamlSpeedometer.js +0 -70
- package/dist/components/Jimbolate.js +0 -17
- package/dist/components/MotelyVersionBadge.js +0 -19
- package/dist/components/PaginatedFilterBrowser.js +0 -54
- package/dist/components/RunConfigModal.js +0 -59
- package/dist/components/Standardcard.js +0 -80
- package/dist/components/jamlMap/CategoryPicker.js +0 -135
- package/dist/components/jamlMap/JamlMapEditor.js +0 -304
- package/dist/components/jamlMap/JamlMapEditor.stories.d.ts +0 -7
- package/dist/components/jamlMap/JamlMapEditor.stories.js +0 -26
- package/dist/components/jamlMap/JamlMapEditorDemo.d.ts +0 -8
- package/dist/components/jamlMap/JamlMapEditorDemo.js +0 -323
- package/dist/components/jamlMap/JokerPicker.js +0 -113
- package/dist/components/jamlMap/MysterySlot.js +0 -128
- package/dist/components/jamlMap/MysterySlot.stories.d.ts +0 -7
- package/dist/components/jamlMap/MysterySlot.stories.js +0 -31
- package/dist/components/jamlMap/index.js +0 -4
- package/dist/decode/motelyItemDecoder.js +0 -164
- package/dist/decode/motelySprite.js +0 -84
- package/dist/hooks/analyzerStreamRegistry.js +0 -96
- package/dist/hooks/searchWorker.d.ts +0 -1
- package/dist/hooks/searchWorker.js +0 -119
- package/dist/hooks/searchWorkerCode.d.ts +0 -1
- package/dist/hooks/searchWorkerCode.js +0 -85
- package/dist/hooks/useAnalyzer.js +0 -91
- package/dist/hooks/useIntersectionObserver.js +0 -52
- package/dist/hooks/useSearch.js +0 -161
- package/dist/hooks/useShopStream.js +0 -85
- package/dist/lib/SpriteMapper.js +0 -48
- package/dist/lib/cardParser.js +0 -67
- package/dist/lib/classes/BuyMetaData.js +0 -1
- package/dist/lib/config.js +0 -15
- package/dist/lib/const.js +0 -521
- package/dist/lib/data/constants.js +0 -14
- package/dist/lib/hooks/useDragScroll.js +0 -48
- package/dist/lib/hooks/useJamlFilter.js +0 -219
- package/dist/lib/hooks/useSeedAnalyzer.js +0 -50
- package/dist/lib/jaml/jamlCompletion.js +0 -13
- package/dist/lib/jaml/jamlData.js +0 -6
- package/dist/lib/jaml/jamlObjectives.js +0 -97
- package/dist/lib/jaml/jamlParser.js +0 -47
- package/dist/lib/jaml/jamlPresets.js +0 -61
- package/dist/lib/jaml/jamlSchema.js +0 -91
- package/dist/lib/parseDailyRitual.js +0 -70
- package/dist/lib/tts/getRevealPos.js +0 -16
- package/dist/lib/tts/splitTtsDisplay.js +0 -35
- package/dist/lib/types.js +0 -1
- package/dist/lib/utils.js +0 -5
- package/dist/motelyDisplay.js +0 -59
- package/dist/r3f/Card3D.js +0 -72
- package/dist/r3f/JimboBillboard.js +0 -32
- package/dist/r3f/JimboText3D.js +0 -8
- package/dist/render/CanvasRenderer.js +0 -11
- package/dist/render/Layer.js +0 -18
- package/dist/sprites/spriteData.js +0 -100
- package/dist/sprites/spriteMapper.js +0 -75
- package/dist/stories/Button.d.ts +0 -15
- package/dist/stories/Button.js +0 -7
- package/dist/stories/Button.stories.d.ts +0 -24
- package/dist/stories/Button.stories.js +0 -50
- package/dist/stories/Header.d.ts +0 -12
- package/dist/stories/Header.js +0 -4
- package/dist/stories/Header.stories.d.ts +0 -18
- package/dist/stories/Header.stories.js +0 -26
- package/dist/stories/Page.d.ts +0 -3
- package/dist/stories/Page.js +0 -8
- package/dist/stories/Page.stories.d.ts +0 -12
- package/dist/stories/Page.stories.js +0 -24
- package/dist/ui/Jimbo.stories.d.ts +0 -7
- package/dist/ui/Jimbo.stories.js +0 -28
- package/dist/ui/JimboBadge.js +0 -8
- package/dist/ui/JimboFloating.js +0 -17
- package/dist/ui/JimboIconButton.js +0 -28
- package/dist/ui/JimboInputModal.js +0 -66
- package/dist/ui/JimboSelect.js +0 -43
- package/dist/ui/JimboToggleList.js +0 -5
- package/dist/ui/PanelSplitter.js +0 -78
- package/dist/ui/codeBlock.js +0 -14
- package/dist/ui/footer.js +0 -20
- package/dist/ui/hooks.js +0 -634
- package/dist/ui/ide/AgnosticSeedCard.d.ts +0 -19
- package/dist/ui/ide/AgnosticSeedCard.js +0 -48
- package/dist/ui/ide/DeckSprite.js +0 -2
- package/dist/ui/ide/JamlBuilder.d.ts +0 -1
- package/dist/ui/ide/JamlBuilder.js +0 -112
- package/dist/ui/ide/JamlEditor.js +0 -486
- package/dist/ui/ide/JamlEditorMonaco.d.ts +0 -8
- package/dist/ui/ide/JamlEditorMonaco.js +0 -78
- package/dist/ui/ide/WasmStatus.d.ts +0 -1
- package/dist/ui/ide/WasmStatus.js +0 -42
- package/dist/ui/jimboApp.js +0 -15
- package/dist/ui/jimboBackground.js +0 -27
- package/dist/ui/jimboCopyRow.js +0 -18
- package/dist/ui/jimboFilterBar.js +0 -16
- package/dist/ui/jimboFlankNav.js +0 -18
- package/dist/ui/jimboInfoCard.js +0 -26
- package/dist/ui/jimboInset.js +0 -9
- package/dist/ui/jimboSectionHeader.js +0 -9
- package/dist/ui/jimboStatGrid.js +0 -9
- package/dist/ui/jimboTabs.js +0 -22
- package/dist/ui/jimboText.js +0 -33
- package/dist/ui/jimboTooltip.js +0 -39
- package/dist/ui/jimboWordmark.js +0 -9
- package/dist/ui/mascot/JammySpeechBox.js +0 -30
- package/dist/ui/mascot/SeedMascot.js +0 -17
- package/dist/ui/mascot/index.js +0 -3
- package/dist/ui/mascot/menuConfig.js +0 -12
- package/dist/ui/panel.js +0 -24
- package/dist/ui/radial/RadialBadge.js +0 -43
- package/dist/ui/radial/RadialBreadcrumb.js +0 -18
- package/dist/ui/radial/RadialButton.js +0 -102
- package/dist/ui/radial/RadialMenu.js +0 -168
- package/dist/ui/radial/RadialPill.js +0 -15
- package/dist/ui/radial/index.js +0 -18
- package/dist/ui/radial/radialMenuStore.js +0 -122
- package/dist/ui/radial/radialMenuViewport.js +0 -59
- package/dist/ui/radial/useRadialMenu.js +0 -107
- package/dist/ui/showcase.js +0 -20
- package/dist/ui/sprites.js +0 -77
- package/dist/ui/tokens.js +0 -64
- package/dist/utils/gameCardUtils.js +0 -15
- package/dist/utils/jamlMapPreview.js +0 -106
- package/dist/utils/jamlVisualFilter.js +0 -210
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spriteMapper-CFjN0_TV.js","names":[],"sources":["../../src/sprites/spriteData.ts","../../src/sprites/spriteMapper.ts"],"sourcesContent":["/**\r\n * Sprite sheet position data for all Balatro game elements.\r\n * Extracted from Blueprint's const.ts — maps item names to {x, y} grid positions\r\n * within their respective sprite sheets.\r\n */\r\n\r\nimport { JAML_ASSET_FILES, resolveJamlAssetUrl, type JamlAssetKey } from \"../assets.js\";\r\n\r\nexport interface SpritePos {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface SpriteEntry {\r\n name: string;\r\n pos: SpritePos;\r\n animated?: boolean;\r\n}\r\n\r\nexport interface SpriteSheetInfo {\r\n readonly asset: JamlAssetKey;\r\n readonly fileName: string;\r\n readonly columns: number;\r\n readonly rows: number;\r\n readonly src: string;\r\n}\r\n\r\nfunction defineSpriteSheet(asset: JamlAssetKey, columns: number, rows: number): SpriteSheetInfo {\r\n return {\r\n asset,\r\n fileName: JAML_ASSET_FILES[asset],\r\n columns,\r\n rows,\r\n get src() {\r\n return resolveJamlAssetUrl(asset);\r\n },\r\n };\r\n}\r\n\r\n/** Sprite sheet grid dimensions */\r\nexport const SPRITE_SHEETS = {\r\n jokers: defineSpriteSheet(\"jokers\", 10, 16),\r\n tarots: defineSpriteSheet(\"tarots\", 10, 6),\r\n deck: defineSpriteSheet(\"deck\", 13, 4),\r\n enhancers: defineSpriteSheet(\"enhancers\", 7, 5),\r\n editions: defineSpriteSheet(\"editions\", 5, 1),\r\n stickers: defineSpriteSheet(\"stickers\", 5, 3),\r\n blinds: defineSpriteSheet(\"blinds\", 21, 31),\r\n vouchers: defineSpriteSheet(\"vouchers\", 9, 4),\r\n tags: defineSpriteSheet(\"tags\", 6, 5),\r\n boosters: defineSpriteSheet(\"boosters\", 4, 9),\r\n stakes: defineSpriteSheet(\"stakes\", 5, 2),\r\n} as const;\r\n\r\nexport const JOKERS: SpriteEntry[] = [\r\n { name: \"Joker\", pos: { x: 0, y: 0 } }, { name: \"Greedy Joker\", pos: { x: 6, y: 1 } }, { name: \"Lusty Joker\", pos: { x: 7, y: 1 } }, { name: \"Wrathful Joker\", pos: { x: 8, y: 1 } }, { name: \"Gluttonous Joker\", pos: { x: 9, y: 1 } }, { name: \"Jolly Joker\", pos: { x: 2, y: 0 } }, { name: \"Zany Joker\", pos: { x: 3, y: 0 } }, { name: \"Mad Joker\", pos: { x: 4, y: 0 } }, { name: \"Crazy Joker\", pos: { x: 5, y: 0 } }, { name: \"Droll Joker\", pos: { x: 6, y: 0 } }, { name: \"Sly Joker\", pos: { x: 0, y: 14 } }, { name: \"Wily Joker\", pos: { x: 1, y: 14 } }, { name: \"Clever Joker\", pos: { x: 2, y: 14 } }, { name: \"Devious Joker\", pos: { x: 3, y: 14 } }, { name: \"Crafty Joker\", pos: { x: 4, y: 14 } }, { name: \"Half Joker\", pos: { x: 7, y: 0 } }, { name: \"Joker Stencil\", pos: { x: 2, y: 5 } }, { name: \"Four Fingers\", pos: { x: 6, y: 6 } }, { name: \"Mime\", pos: { x: 4, y: 1 } }, { name: \"Credit Card\", pos: { x: 5, y: 1 } }, { name: \"Ceremonial Dagger\", pos: { x: 5, y: 5 } }, { name: \"Banner\", pos: { x: 1, y: 2 } }, { name: \"Mystic Summit\", pos: { x: 2, y: 2 } }, { name: \"Marble Joker\", pos: { x: 3, y: 2 } }, { name: \"Loyalty Card\", pos: { x: 4, y: 2 } }, { name: \"8 Ball\", pos: { x: 0, y: 5 } }, { name: \"Misprint\", pos: { x: 6, y: 2 } }, { name: \"Dusk\", pos: { x: 4, y: 7 } }, { name: \"Raised Fist\", pos: { x: 8, y: 2 } }, { name: \"Chaos the Clown\", pos: { x: 1, y: 0 } }, { name: \"Fibonacci\", pos: { x: 1, y: 5 } }, { name: \"Steel Joker\", pos: { x: 7, y: 2 } }, { name: \"Scary Face\", pos: { x: 2, y: 3 } }, { name: \"Abstract Joker\", pos: { x: 3, y: 3 } }, { name: \"Delayed Gratification\", pos: { x: 4, y: 3 } }, { name: \"Hack\", pos: { x: 5, y: 2 } }, { name: \"Pareidolia\", pos: { x: 6, y: 3 } }, { name: \"Gros Michel\", pos: { x: 7, y: 6 } }, { name: \"Even Steven\", pos: { x: 8, y: 3 } }, { name: \"Odd Todd\", pos: { x: 9, y: 3 } }, { name: \"Scholar\", pos: { x: 3, y: 6 } }, { name: \"Business Card\", pos: { x: 1, y: 4 } }, { name: \"Supernova\", pos: { x: 2, y: 4 } }, { name: \"Ride the Bus\", pos: { x: 1, y: 6 } }, { name: \"Space Joker\", pos: { x: 3, y: 5 } }, { name: \"Egg\", pos: { x: 0, y: 10 } }, { name: \"Burglar\", pos: { x: 1, y: 10 } }, { name: \"Blackboard\", pos: { x: 2, y: 10 } }, { name: \"Runner\", pos: { x: 3, y: 10 } }, { name: \"Ice Cream\", pos: { x: 4, y: 10 } }, { name: \"DNA\", pos: { x: 5, y: 10 } }, { name: \"Splash\", pos: { x: 6, y: 10 } }, { name: \"Blue Joker\", pos: { x: 7, y: 10 } }, { name: \"Sixth Sense\", pos: { x: 8, y: 10 } }, { name: \"Constellation\", pos: { x: 9, y: 10 } }, { name: \"Hiker\", pos: { x: 0, y: 11 } }, { name: \"Faceless Joker\", pos: { x: 1, y: 11 } }, { name: \"Green Joker\", pos: { x: 2, y: 11 } }, { name: \"Superposition\", pos: { x: 3, y: 11 } }, { name: \"To Do List\", pos: { x: 4, y: 11 } }, { name: \"Cavendish\", pos: { x: 5, y: 11 } }, { name: \"Card Sharp\", pos: { x: 6, y: 11 } }, { name: \"Red Card\", pos: { x: 7, y: 11 } }, { name: \"Madness\", pos: { x: 8, y: 11 } }, { name: \"Square Joker\", pos: { x: 9, y: 11 } }, { name: \"Seance\", pos: { x: 0, y: 12 } }, { name: \"Riff-raff\", pos: { x: 1, y: 12 } }, { name: \"Vampire\", pos: { x: 2, y: 12 } }, { name: \"Shortcut\", pos: { x: 3, y: 12 } }, { name: \"Hologram\", pos: { x: 4, y: 12 } }, { name: \"Vagabond\", pos: { x: 5, y: 12 } }, { name: \"Baron\", pos: { x: 6, y: 12 } }, { name: \"Cloud 9\", pos: { x: 7, y: 12 } }, { name: \"Rocket\", pos: { x: 8, y: 12 } }, { name: \"Obelisk\", pos: { x: 9, y: 12 } }, { name: \"Midas Mask\", pos: { x: 0, y: 13 } }, { name: \"Luchador\", pos: { x: 1, y: 13 } }, { name: \"Photograph\", pos: { x: 2, y: 13 } }, { name: \"Gift Card\", pos: { x: 3, y: 13 } }, { name: \"Turtle Bean\", pos: { x: 4, y: 13 } }, { name: \"Erosion\", pos: { x: 5, y: 13 } }, { name: \"Reserved Parking\", pos: { x: 6, y: 13 } }, { name: \"Mail In Rebate\", pos: { x: 7, y: 13 } }, { name: \"To the Moon\", pos: { x: 8, y: 13 } }, { name: \"Hallucination\", pos: { x: 9, y: 13 } }, { name: \"Fortune Teller\", pos: { x: 7, y: 5 } }, { name: \"Juggler\", pos: { x: 0, y: 1 } }, { name: \"Drunkard\", pos: { x: 1, y: 1 } }, { name: \"Stone Joker\", pos: { x: 9, y: 0 } }, { name: \"Golden Joker\", pos: { x: 9, y: 2 } }, { name: \"Lucky Cat\", pos: { x: 5, y: 14 } }, { name: \"Baseball Card\", pos: { x: 6, y: 14 } }, { name: \"Bull\", pos: { x: 7, y: 14 } }, { name: \"Diet Cola\", pos: { x: 8, y: 14 } }, { name: \"Trading Card\", pos: { x: 9, y: 14 } }, { name: \"Flash Card\", pos: { x: 0, y: 15 } }, { name: \"Popcorn\", pos: { x: 1, y: 15 } }, { name: \"Spare Trousers\", pos: { x: 4, y: 15 } }, { name: \"Ancient Joker\", pos: { x: 7, y: 15 } }, { name: \"Ramen\", pos: { x: 2, y: 15 } }, { name: \"Walkie Talkie\", pos: { x: 8, y: 15 } }, { name: \"Seltzer\", pos: { x: 3, y: 15 } }, { name: \"Castle\", pos: { x: 9, y: 15 } }, { name: \"Smiley Face\", pos: { x: 6, y: 15 } }, { name: \"Campfire\", pos: { x: 5, y: 15 } }, { name: \"Golden Ticket\", pos: { x: 5, y: 3 } }, { name: \"Mr. Bones\", pos: { x: 3, y: 4 } }, { name: \"Acrobat\", pos: { x: 2, y: 1 } }, { name: \"Sock and Buskin\", pos: { x: 3, y: 1 } }, { name: \"Swashbuckler\", pos: { x: 9, y: 5 } }, { name: \"Troubadour\", pos: { x: 0, y: 2 } }, { name: \"Certificate\", pos: { x: 8, y: 8 } }, { name: \"Smeared Joker\", pos: { x: 4, y: 6 } }, { name: \"Throwback\", pos: { x: 5, y: 7 } }, { name: \"Hanging Chad\", pos: { x: 9, y: 6 } }, { name: \"Rough Gem\", pos: { x: 9, y: 7 } }, { name: \"Bloodstone\", pos: { x: 0, y: 8 } }, { name: \"Arrowhead\", pos: { x: 1, y: 8 } }, { name: \"Onyx Agate\", pos: { x: 2, y: 8 } }, { name: \"Glass Joker\", pos: { x: 1, y: 3 } }, { name: \"Showman\", pos: { x: 6, y: 5 } }, { name: \"Flower Pot\", pos: { x: 0, y: 6 } }, { name: \"Blueprint\", pos: { x: 0, y: 3 } }, { name: \"Wee Joker\", pos: { x: 0, y: 4 } }, { name: \"Merry Andy\", pos: { x: 8, y: 0 } }, { name: \"Oops! All 6s\", pos: { x: 5, y: 6 } }, { name: \"The Idol\", pos: { x: 6, y: 7 } }, { name: \"Seeing Double\", pos: { x: 4, y: 4 } }, { name: \"Matador\", pos: { x: 4, y: 5 } }, { name: \"Hit the Road\", pos: { x: 8, y: 5 } }, { name: \"The Duo\", pos: { x: 5, y: 4 } }, { name: \"The Trio\", pos: { x: 6, y: 4 } }, { name: \"The Family\", pos: { x: 7, y: 4 } }, { name: \"The Order\", pos: { x: 8, y: 4 } }, { name: \"The Tribe\", pos: { x: 9, y: 4 } }, { name: \"Stuntman\", pos: { x: 8, y: 6 } }, { name: \"Invisible Joker\", pos: { x: 1, y: 7 } }, { name: \"Brainstorm\", pos: { x: 7, y: 7 } }, { name: \"Satellite\", pos: { x: 8, y: 7 } }, { name: \"Shoot the Moon\", pos: { x: 2, y: 6 } }, { name: \"Drivers License\", pos: { x: 0, y: 7 } }, { name: \"Cartomancer\", pos: { x: 7, y: 3 } }, { name: \"Astronomer\", pos: { x: 2, y: 7 } }, { name: \"Burnt Joker\", pos: { x: 3, y: 7 } }, { name: \"Bootstraps\", pos: { x: 9, y: 8 } }, { name: \"Canio\", pos: { x: 3, y: 8 } }, { name: \"Triboulet\", pos: { x: 4, y: 8 } }, { name: \"Yorick\", pos: { x: 5, y: 8 } }, { name: \"Chicot\", pos: { x: 6, y: 8 } }, { name: \"Perkeo\", pos: { x: 7, y: 8 } },\r\n];\r\n\r\nexport const JOKER_FACES: SpriteEntry[] = [\r\n { name: \"Hologram\", pos: { x: 2, y: 9 }, animated: true },\r\n { name: \"Canio\", pos: { x: 3, y: 9 }, animated: true },\r\n { name: \"Triboulet\", pos: { x: 4, y: 9 }, animated: true },\r\n { name: \"Yorick\", pos: { x: 5, y: 9 }, animated: true },\r\n { name: \"Chicot\", pos: { x: 6, y: 9 }, animated: true },\r\n { name: \"Perkeo\", pos: { x: 7, y: 9 }, animated: true },\r\n];\r\n\r\nexport const CONSUMABLE_FACES: SpriteEntry[] = [\r\n { name: \"The Soul\", pos: { x: 0, y: 1 }, animated: true },\r\n];\r\n\r\nexport const TAROTS_AND_PLANETS: SpriteEntry[] = [\r\n { name: \"The Fool\", pos: { x: 0, y: 0 } }, { name: \"The Magician\", pos: { x: 1, y: 0 } }, { name: \"The High Priestess\", pos: { x: 2, y: 0 } }, { name: \"The Empress\", pos: { x: 3, y: 0 } }, { name: \"The Emperor\", pos: { x: 4, y: 0 } }, { name: \"The Hierophant\", pos: { x: 5, y: 0 } }, { name: \"The Lovers\", pos: { x: 6, y: 0 } }, { name: \"The Chariot\", pos: { x: 7, y: 0 } }, { name: \"Justice\", pos: { x: 8, y: 0 } }, { name: \"The Hermit\", pos: { x: 9, y: 0 } }, { name: \"The Wheel of Fortune\", pos: { x: 0, y: 1 } }, { name: \"Strength\", pos: { x: 1, y: 1 } }, { name: \"The Hanged Man\", pos: { x: 2, y: 1 } }, { name: \"Death\", pos: { x: 3, y: 1 } }, { name: \"Temperance\", pos: { x: 4, y: 1 } }, { name: \"The Devil\", pos: { x: 5, y: 1 } }, { name: \"The Tower\", pos: { x: 6, y: 1 } }, { name: \"The Star\", pos: { x: 7, y: 1 } }, { name: \"The Moon\", pos: { x: 8, y: 1 } }, { name: \"The Sun\", pos: { x: 9, y: 1 } }, { name: \"Judgement\", pos: { x: 0, y: 2 } }, { name: \"The World\", pos: { x: 1, y: 2 } }, { name: \"Mercury\", pos: { x: 0, y: 3 } }, { name: \"Venus\", pos: { x: 1, y: 3 } }, { name: \"Earth\", pos: { x: 2, y: 3 } }, { name: \"Mars\", pos: { x: 3, y: 3 } }, { name: \"Jupiter\", pos: { x: 4, y: 3 } }, { name: \"Saturn\", pos: { x: 5, y: 3 } }, { name: \"Uranus\", pos: { x: 6, y: 3 } }, { name: \"Neptune\", pos: { x: 7, y: 3 } }, { name: \"Pluto\", pos: { x: 8, y: 3 } }, { name: \"Planet X\", pos: { x: 9, y: 2 } }, { name: \"Ceres\", pos: { x: 8, y: 2 } }, { name: \"Eris\", pos: { x: 3, y: 2 } }, { name: \"Familiar\", pos: { x: 0, y: 4 } }, { name: \"Grim\", pos: { x: 1, y: 4 } }, { name: \"Incantation\", pos: { x: 2, y: 4 } }, { name: \"Talisman\", pos: { x: 3, y: 4 } }, { name: \"Aura\", pos: { x: 4, y: 4 } }, { name: \"Wraith\", pos: { x: 5, y: 4 } }, { name: \"Sigil\", pos: { x: 6, y: 4 } }, { name: \"Ouija\", pos: { x: 7, y: 4 } }, { name: \"Ectoplasm\", pos: { x: 8, y: 4 } }, { name: \"Immolate\", pos: { x: 9, y: 4 } }, { name: \"Ankh\", pos: { x: 0, y: 5 } }, { name: \"Deja Vu\", pos: { x: 1, y: 5 } }, { name: \"Hex\", pos: { x: 2, y: 5 } }, { name: \"Trance\", pos: { x: 3, y: 5 } }, { name: \"Medium\", pos: { x: 4, y: 5 } }, { name: \"Cryptid\", pos: { x: 5, y: 5 } }, { name: \"The Soul\", pos: { x: 2, y: 2 } }, { name: \"Black Hole\", pos: { x: 9, y: 3 } },\r\n];\r\n\r\nexport const TAGS: SpriteEntry[] = [\r\n { name: \"Uncommon Tag\", pos: { x: 0, y: 0 } }, { name: \"Rare Tag\", pos: { x: 1, y: 0 } }, { name: \"Negative Tag\", pos: { x: 2, y: 0 } }, { name: \"Foil Tag\", pos: { x: 3, y: 0 } }, { name: \"Holographic Tag\", pos: { x: 0, y: 1 } }, { name: \"Polychrome Tag\", pos: { x: 1, y: 1 } }, { name: \"Investment Tag\", pos: { x: 2, y: 1 } }, { name: \"Voucher Tag\", pos: { x: 3, y: 1 } }, { name: \"Boss Tag\", pos: { x: 0, y: 2 } }, { name: \"Standard Tag\", pos: { x: 1, y: 2 } }, { name: \"Charm Tag\", pos: { x: 2, y: 2 } }, { name: \"Meteor Tag\", pos: { x: 3, y: 2 } }, { name: \"Buffoon Tag\", pos: { x: 4, y: 2 } }, { name: \"Handy Tag\", pos: { x: 1, y: 3 } }, { name: \"Garbage Tag\", pos: { x: 2, y: 3 } }, { name: \"Ethereal Tag\", pos: { x: 3, y: 3 } }, { name: \"Coupon Tag\", pos: { x: 4, y: 0 } }, { name: \"Double Tag\", pos: { x: 5, y: 0 } }, { name: \"Juggle Tag\", pos: { x: 5, y: 1 } }, { name: \"D6 Tag\", pos: { x: 5, y: 3 } }, { name: \"Top-up Tag\", pos: { x: 4, y: 1 } }, { name: \"Speed Tag\", pos: { x: 0, y: 3 } }, { name: \"Orbital Tag\", pos: { x: 5, y: 2 } }, { name: \"Economy Tag\", pos: { x: 4, y: 3 } },\r\n];\r\n\r\nexport const VOUCHERS: SpriteEntry[] = [\r\n { name: \"Overstock\", pos: { x: 0, y: 0 } }, { name: \"Clearance Sale\", pos: { x: 3, y: 0 } }, { name: \"Hone\", pos: { x: 4, y: 0 } }, { name: \"Reroll Surplus\", pos: { x: 0, y: 2 } }, { name: \"Crystal Ball\", pos: { x: 2, y: 2 } }, { name: \"Telescope\", pos: { x: 3, y: 2 } }, { name: \"Grabber\", pos: { x: 5, y: 0 } }, { name: \"Wasteful\", pos: { x: 6, y: 0 } }, { name: \"Tarot Merchant\", pos: { x: 1, y: 0 } }, { name: \"Planet Merchant\", pos: { x: 2, y: 0 } }, { name: \"Seed Money\", pos: { x: 1, y: 2 } }, { name: \"Blank\", pos: { x: 7, y: 0 } }, { name: \"Magic Trick\", pos: { x: 4, y: 2 } }, { name: \"Hieroglyph\", pos: { x: 5, y: 2 } }, { name: \"Director's Cut\", pos: { x: 6, y: 2 } }, { name: \"Paint Brush\", pos: { x: 7, y: 2 } }, { name: \"Overstock Plus\", pos: { x: 0, y: 1 } }, { name: \"Liquidation\", pos: { x: 3, y: 1 } }, { name: \"Glow Up\", pos: { x: 4, y: 1 } }, { name: \"Reroll Glut\", pos: { x: 0, y: 3 } }, { name: \"Omen Globe\", pos: { x: 2, y: 3 } }, { name: \"Observatory\", pos: { x: 3, y: 3 } }, { name: \"Nacho Tong\", pos: { x: 5, y: 1 } }, { name: \"Recyclomancy\", pos: { x: 6, y: 1 } }, { name: \"Tarot Tycoon\", pos: { x: 1, y: 1 } }, { name: \"Planet Tycoon\", pos: { x: 2, y: 1 } }, { name: \"Money Tree\", pos: { x: 1, y: 3 } }, { name: \"Antimatter\", pos: { x: 7, y: 1 } }, { name: \"Illusion\", pos: { x: 4, y: 3 } }, { name: \"Petroglyph\", pos: { x: 5, y: 3 } }, { name: \"Retcon\", pos: { x: 6, y: 3 } }, { name: \"Palette\", pos: { x: 7, y: 3 } },\r\n];\r\n\r\nexport const BOSSES: SpriteEntry[] = [\r\n { name: \"Small Blind\", pos: { x: 0, y: 0 } }, { name: \"Big Blind\", pos: { x: 0, y: 1 } }, { name: \"The Ox\", pos: { x: 0, y: 2 } }, { name: \"The Hook\", pos: { x: 0, y: 7 } }, { name: \"The Mouth\", pos: { x: 0, y: 18 } }, { name: \"The Fish\", pos: { x: 0, y: 5 } }, { name: \"The Club\", pos: { x: 0, y: 4 } }, { name: \"The Manacle\", pos: { x: 0, y: 8 } }, { name: \"The Tooth\", pos: { x: 0, y: 22 } }, { name: \"The Wall\", pos: { x: 0, y: 9 } }, { name: \"The House\", pos: { x: 0, y: 3 } }, { name: \"The Mark\", pos: { x: 0, y: 23 } }, { name: \"Cerulean Bell\", pos: { x: 0, y: 26 } }, { name: \"The Wheel\", pos: { x: 0, y: 10 } }, { name: \"The Arm\", pos: { x: 0, y: 11 } }, { name: \"The Psychic\", pos: { x: 0, y: 12 } }, { name: \"The Goad\", pos: { x: 0, y: 13 } }, { name: \"The Water\", pos: { x: 0, y: 14 } }, { name: \"The Eye\", pos: { x: 0, y: 17 } }, { name: \"The Plant\", pos: { x: 0, y: 19 } }, { name: \"The Needle\", pos: { x: 0, y: 20 } }, { name: \"The Head\", pos: { x: 0, y: 21 } }, { name: \"Verdant Leaf\", pos: { x: 0, y: 28 } }, { name: \"Violet Vessel\", pos: { x: 0, y: 29 } }, { name: \"The Window\", pos: { x: 0, y: 6 } }, { name: \"The Serpent\", pos: { x: 0, y: 15 } }, { name: \"The Pillar\", pos: { x: 0, y: 16 } }, { name: \"The Flint\", pos: { x: 0, y: 24 } }, { name: \"Amber Acorn\", pos: { x: 0, y: 27 } }, { name: \"Crimson Heart\", pos: { x: 0, y: 25 } },\r\n];\r\n\r\nexport const BOOSTER_PACKS: SpriteEntry[] = [\r\n { name: \"Arcana Pack\", pos: { x: 0, y: 0 } }, { name: \"Celestial Pack\", pos: { x: 0, y: 1 } }, { name: \"Jumbo Arcana Pack\", pos: { x: 0, y: 2 } }, { name: \"Mega Arcana Pack\", pos: { x: 2, y: 2 } }, { name: \"Jumbo Celestial Pack\", pos: { x: 0, y: 3 } }, { name: \"Mega Celestial Pack\", pos: { x: 2, y: 3 } }, { name: \"Spectral Pack\", pos: { x: 0, y: 4 } }, { name: \"Jumbo Spectral Pack\", pos: { x: 2, y: 4 } }, { name: \"Mega Spectral Pack\", pos: { x: 3, y: 4 } }, { name: \"Standard Pack\", pos: { x: 0, y: 6 } }, { name: \"Jumbo Standard Pack\", pos: { x: 0, y: 7 } }, { name: \"Mega Standard Pack\", pos: { x: 2, y: 7 } }, { name: \"Buffoon Pack\", pos: { x: 0, y: 8 } }, { name: \"Jumbo Buffoon Pack\", pos: { x: 2, y: 8 } }, { name: \"Mega Buffoon Pack\", pos: { x: 3, y: 8 } },\r\n];\r\n\r\nexport const EDITION_MAP: Record<string, number> = {\r\n Foil: 1,\r\n Holographic: 2,\r\n Polychrome: 3,\r\n};\r\n\r\nexport const STICKER_MAP: Record<string, SpritePos> = {\r\n Eternal: { x: 0, y: 0 },\r\n Perishable: { x: 0, y: 2 },\r\n Rental: { x: 1, y: 2 },\r\n};\r\n\r\nexport const RANK_MAP: Record<string, number> = {\r\n \"2\": 0, \"3\": 1, \"4\": 2, \"5\": 3, \"6\": 4, \"7\": 5, \"8\": 6, \"9\": 7, \"10\": 8, Jack: 9, Queen: 10, King: 11, Ace: 12,\r\n};\r\n\r\nexport const SUIT_MAP: Record<string, number> = {\r\n Hearts: 0, Clubs: 1, Diamonds: 2, Spades: 3,\r\n};\r\n\r\nexport const ENHANCER_MAP: Record<string, SpritePos> = {\r\n Bonus: { x: 1, y: 1 }, Mult: { x: 2, y: 1 }, Wild: { x: 3, y: 1 }, Glass: { x: 5, y: 1 }, Steel: { x: 6, y: 1 }, Stone: { x: 5, y: 0 }, Gold: { x: 6, y: 0 }, Lucky: { x: 4, y: 1 },\r\n};\r\n\r\nexport const SEAL_MAP: Record<string, SpritePos> = {\r\n \"Gold Seal\": { x: 2, y: 0 }, \"Purple Seal\": { x: 4, y: 4 }, \"Red Seal\": { x: 5, y: 4 }, \"Blue Seal\": { x: 6, y: 4 },\r\n Gold: { x: 2, y: 0 }, Purple: { x: 4, y: 4 }, Red: { x: 5, y: 4 }, Blue: { x: 6, y: 4 },\r\n};\r\n\r\n/** Build fast lookup maps */\r\nconst jokerMap = new Map(JOKERS.map((j) => [j.name, j]));\r\nconst jokerFaceMap = new Map(JOKER_FACES.map((j) => [j.name, j]));\r\nconst consumableMap = new Map(TAROTS_AND_PLANETS.map((t) => [t.name, t]));\r\nconst consumableFaceMap = new Map(CONSUMABLE_FACES.map((c) => [c.name, c]));\r\nconst tagMap = new Map(TAGS.map((t) => [t.name, t]));\r\nconst voucherMap = new Map(VOUCHERS.map((v) => [v.name, v]));\r\nconst bossMap = new Map(BOSSES.map((b) => [b.name, b]));\r\nconst boosterMap = new Map(BOOSTER_PACKS.map((b) => [b.name, b]));\r\n\r\nexport function findJoker(name: string) { return jokerMap.get(name); }\r\nexport function findJokerFace(name: string) { return jokerFaceMap.get(name); }\r\nexport function findConsumable(name: string) { return consumableMap.get(name); }\r\nexport function findConsumableFace(name: string) { return consumableFaceMap.get(name); }\r\nexport function findTag(name: string) { return tagMap.get(name); }\r\nexport function findVoucher(name: string) { return voucherMap.get(name); }\r\nexport function findBoss(name: string) { return bossMap.get(name); }\r\nexport function findBooster(name: string) { return boosterMap.get(name); }\r\n","import {\r\n JOKERS, JOKER_FACES, TAROTS_AND_PLANETS, CONSUMABLE_FACES,\r\n VOUCHERS, BOSSES, TAGS, BOOSTER_PACKS,\r\n type SpriteEntry,\r\n} from \"./spriteData.js\";\r\n\r\nexport interface SpritePos {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport type SpriteSheetType =\r\n | \"Jokers\" | \"Tarots\" | \"Vouchers\" | \"Boosters\"\r\n | \"Enhancers\" | \"Editions\" | \"BlindChips\" | \"tags\"\r\n | \"Stakes\" | \"Decks\";\r\n\r\nimport type { JamlAssetKey } from '../assets.js';\r\n\r\nexport const SHEET_META: Record<SpriteSheetType, { cols: number; rows: number; assetKey: JamlAssetKey }> = {\r\n Jokers: { cols: 10, rows: 16, assetKey: 'jokers' },\r\n Tarots: { cols: 10, rows: 6, assetKey: 'tarots' },\r\n Vouchers: { cols: 9, rows: 4, assetKey: 'vouchers' },\r\n Boosters: { cols: 4, rows: 9, assetKey: 'boosters' },\r\n BlindChips:{ cols: 21, rows: 31, assetKey: 'blinds' },\r\n tags: { cols: 6, rows: 5, assetKey: 'tags' },\r\n Enhancers: { cols: 7, rows: 5, assetKey: 'enhancers' },\r\n Editions: { cols: 5, rows: 1, assetKey: 'editions' },\r\n Stakes: { cols: 5, rows: 2, assetKey: 'stakes' },\r\n Decks: { cols: 13, rows: 4, assetKey: 'deck' },\r\n};\r\n\r\nexport interface SpriteData {\r\n pos: SpritePos;\r\n type: SpriteSheetType;\r\n}\r\n\r\nconst normalize = (name: string): string => name.toLowerCase().replace(/\\s+/g, \"\");\r\nconst stripPrefix = (name: string): string =>\r\n name.replace(/^(Joker|Tarot|Planet|Voucher|Pack|Edition|Tag) [|:] /i, \"\").trim();\r\n\r\nconst ITEM_MAP = new Map<string, SpriteData>();\r\n\r\nfunction registerAll(items: SpriteEntry[], type: SpriteSheetType) {\r\n for (const item of items) {\r\n if (!item.name || !item.pos) continue;\r\n ITEM_MAP.set(normalize(item.name), { pos: item.pos, type });\r\n }\r\n}\r\n\r\nregisterAll(JOKERS, \"Jokers\");\r\nregisterAll(JOKER_FACES, \"Jokers\");\r\nregisterAll(TAROTS_AND_PLANETS, \"Tarots\");\r\nregisterAll(CONSUMABLE_FACES ?? [], \"Tarots\");\r\nregisterAll(VOUCHERS, \"Vouchers\");\r\nregisterAll(BOSSES, \"BlindChips\");\r\nregisterAll(TAGS, \"tags\");\r\nregisterAll(BOOSTER_PACKS ?? [], \"Boosters\");\r\n\r\n/**\r\n * Per-sheet mystery/back card positions for unknown items.\r\n * Used as fallback when an item name can't be resolved.\r\n */\r\nexport const MYSTERY_SPRITES: Partial<Record<SpriteSheetType, SpritePos>> = {\r\n Jokers: { x: 9, y: 9 }, // grey card back (legendary face row)\r\n Tarots: { x: 4, y: 2 }, // blank consumable\r\n Vouchers: { x: 8, y: 2 }, // mystery voucher\r\n Boosters: { x: 0, y: 5 }, // grey empty pack\r\n tags: { x: 3, y: 4 }, // grey ? tag\r\n BlindChips: { x: 0, y: 30 }, // grey ? blind\r\n};\r\n\r\n/** Get the mystery/fallback sprite for a given sheet type. */\r\nexport function getMysterySprite(sheet: SpriteSheetType): SpriteData {\r\n return { pos: MYSTERY_SPRITES[sheet] ?? { x: 0, y: 0 }, type: sheet };\r\n}\r\n\r\n/** Look up sprite data by name. Accepts display names (\"Icy Joker\"), enum keys (\"IcyJoker\"), and \"Joker | Name\" prefixed forms. */\r\nexport function getSpriteData(name: string): SpriteData | null {\r\n return ITEM_MAP.get(normalize(stripPrefix(name))) ?? ITEM_MAP.get(normalize(name)) ?? null;\r\n}\r\n\r\n/**\r\n * Wildcard \"Any\" sprites from the Enhancers sheet.\r\n * Used in the JAML visual editor when a clause value is \"Any\" (e.g. `legendaryJoker: Any`).\r\n */\r\nexport const WILDCARD_SPRITES = {\r\n /** Grey silhouette — Enhancers row 3 col 5. For generic \"Any\" items. */\r\n anySilhouette: { pos: { x: 5, y: 3 }, type: \"Enhancers\" as SpriteSheetType },\r\n /** Grey ? circle — Enhancers row 3 col 6. For \"boss: Any\" etc. */\r\n anyMystery: { pos: { x: 6, y: 3 }, type: \"Enhancers\" as SpriteSheetType },\r\n /** Red X debuff — Editions row 0 col 4. For mustNot zone indicator. */\r\n mustNotDebuff: { pos: { x: 4, y: 0 }, type: \"Editions\" as SpriteSheetType },\r\n /** The Soul card — Tarots row 2 col 2. Base for \"legendaryJoker: Any\" (they spawn from Soul). */\r\n anyLegendary: { pos: { x: 2, y: 2 }, type: \"Tarots\" as SpriteSheetType },\r\n /** Blank spectral back — Tarots row 2 col 5. For \"spectralCard: Any\". */\r\n anySpectral: { pos: { x: 5, y: 2 }, type: \"Tarots\" as SpriteSheetType },\r\n /** Blank tarot back — Tarots row 2 col 6. For \"tarotCard: Any\". */\r\n anyTarot: { pos: { x: 6, y: 2 }, type: \"Tarots\" as SpriteSheetType },\r\n /** Blank planet back — Tarots row 2 col 7. For \"planetCard: Any\". */\r\n anyPlanet: { pos: { x: 7, y: 2 }, type: \"Tarots\" as SpriteSheetType },\r\n} as const;\r\n\r\n/** Look up sprite data by name, falling back to the mystery card for the given sheet if not found. */\r\nexport function getSpriteDataOrMystery(name: string, fallbackSheet: SpriteSheetType = \"Jokers\"): SpriteData {\r\n return getSpriteData(name) ?? getMysterySprite(fallbackSheet);\r\n}\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
//#region src/ui/tokens.ts
|
|
2
|
+
var e = {
|
|
3
|
+
RED: "#ff4c40",
|
|
4
|
+
BLUE: "#0093ff",
|
|
5
|
+
GREEN: "#429f79",
|
|
6
|
+
ORANGE: "#ff9800",
|
|
7
|
+
GOLD: "#e4b643",
|
|
8
|
+
PURPLE: "#9e74ce",
|
|
9
|
+
DARK_RED: "#a02721",
|
|
10
|
+
DARK_BLUE: "#0057a1",
|
|
11
|
+
DARK_ORANGE: "#a05b00",
|
|
12
|
+
DARK_GREEN: "#215f46",
|
|
13
|
+
DARK_PURPLE: "#5e437e",
|
|
14
|
+
DARK_GREY: "#3a5055",
|
|
15
|
+
DARKEST: "#1e2b2d",
|
|
16
|
+
GREY: "#708386",
|
|
17
|
+
TEAL_GREY: "#404c4e",
|
|
18
|
+
PANEL_EDGE: "#1e2e32",
|
|
19
|
+
INNER_BORDER: "#334461",
|
|
20
|
+
BORDER_SILVER: "#b9c2d2",
|
|
21
|
+
BORDER_SOUTH: "#777e89",
|
|
22
|
+
GOLD_TEXT: "#e4b643",
|
|
23
|
+
GREEN_TEXT: "#35bd86",
|
|
24
|
+
ORANGE_TEXT: "#ff8f00",
|
|
25
|
+
WHITE: "#ffffff",
|
|
26
|
+
BLACK: "#000000",
|
|
27
|
+
TAROT_BUTTON: "#9e74ce",
|
|
28
|
+
PLANET_BUTTON: "#00a7ca",
|
|
29
|
+
SPECTRAL_BUTTON: "#2e76fd",
|
|
30
|
+
TAROT_BUTTON_DARK: "#5e437e",
|
|
31
|
+
PLANET_BUTTON_DARK: "#00657c",
|
|
32
|
+
SPECTRAL_BUTTON_DARK: "#14449e"
|
|
33
|
+
};
|
|
34
|
+
function t(e, t) {
|
|
35
|
+
let n = e.replace("#", "");
|
|
36
|
+
return `rgba(${parseInt(n.slice(0, 2), 16)}, ${parseInt(n.slice(2, 4), 16)}, ${parseInt(n.slice(4, 6), 16)}, ${t})`;
|
|
37
|
+
}
|
|
38
|
+
var n = {
|
|
39
|
+
JUICE_UP_SCALE: 1.05,
|
|
40
|
+
JUICE_DOWN_SCALE: 1,
|
|
41
|
+
JUICE_DURATION: 150,
|
|
42
|
+
JUICE_EASING: "cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
43
|
+
SWAY_AMOUNT: 1.5,
|
|
44
|
+
SWAY_DURATION: 4e3,
|
|
45
|
+
PRESS_TRANSLATE_Y: 2,
|
|
46
|
+
PRESS_DURATION: 50,
|
|
47
|
+
CARD_TILT_MAX: 6,
|
|
48
|
+
MENU_SINK_DURATION: 200,
|
|
49
|
+
MENU_RISE_DURATION: 300,
|
|
50
|
+
MENU_ORBIT_DURATION: 320,
|
|
51
|
+
LETTER_POP_RATE: 3,
|
|
52
|
+
LETTER_BUMP_RATE: 2.666
|
|
53
|
+
};
|
|
54
|
+
//#endregion
|
|
55
|
+
export { e as n, t as r, n as t };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=tokens-B65Fzble.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens-B65Fzble.js","names":[],"sources":["../../src/ui/tokens.ts"],"sourcesContent":["/**\r\n * Balatro design tokens — colors eyedropped from actual game pixels.\r\n * Do NOT replace with Lua HEX values; the game's shader pipeline transforms them.\r\n *\r\n * IMPORTANT: For DOM components, use CSS custom properties (--j-red, etc.)\r\n * from jimbo.css. Only use these JS constants for contexts that cannot use\r\n * CSS — such as R3F/Canvas, inline SVG fills, or imperative animation APIs.\r\n */\r\n\r\nexport const JimboColorOption = {\r\n RED: '#ff4c40',\r\n BLUE: '#0093ff',\r\n GREEN: '#429f79',\r\n ORANGE: '#ff9800',\r\n GOLD: '#e4b643',\r\n PURPLE: '#9e74ce',\r\n\r\n DARK_RED: '#a02721',\r\n DARK_BLUE: '#0057a1',\r\n DARK_ORANGE: '#a05b00',\r\n DARK_GREEN: '#215f46',\r\n DARK_PURPLE: '#5e437e',\r\n\r\n DARK_GREY: '#3a5055',\r\n DARKEST: '#1e2b2d',\r\n GREY: '#708386',\r\n TEAL_GREY: '#404c4e',\r\n\r\n PANEL_EDGE: '#1e2e32',\r\n INNER_BORDER: '#334461',\r\n\r\n BORDER_SILVER: '#b9c2d2',\r\n BORDER_SOUTH: '#777e89',\r\n\r\n GOLD_TEXT: '#e4b643',\r\n GREEN_TEXT: '#35bd86',\r\n ORANGE_TEXT: '#ff8f00',\r\n WHITE: '#ffffff',\r\n BLACK: '#000000',\r\n\r\n TAROT_BUTTON: '#9e74ce',\r\n PLANET_BUTTON: '#00a7ca',\r\n SPECTRAL_BUTTON: '#2e76fd',\r\n TAROT_BUTTON_DARK: '#5e437e',\r\n PLANET_BUTTON_DARK: '#00657c',\r\n SPECTRAL_BUTTON_DARK: '#14449e',\r\n} as const\r\n\r\nexport type JimboPaletteColor = keyof typeof JimboColorOption\r\n\r\n/** Convert hex to rgba for inline styles in Canvas/SVG/R3F contexts. */\r\nexport function withAlpha(hex: string, alpha: number): string {\r\n const clean = hex.replace('#', '')\r\n const r = parseInt(clean.slice(0, 2), 16)\r\n const g = parseInt(clean.slice(2, 4), 16)\r\n const b = parseInt(clean.slice(4, 6), 16)\r\n return `rgba(${r}, ${g}, ${b}, ${alpha})`\r\n}\r\n\r\nexport const JIMBO_ANIMATIONS = {\r\n JUICE_UP_SCALE: 1.05,\r\n JUICE_DOWN_SCALE: 1.0,\r\n JUICE_DURATION: 150,\r\n JUICE_EASING: 'cubic-bezier(0.34, 1.56, 0.64, 1)',\r\n SWAY_AMOUNT: 1.5,\r\n SWAY_DURATION: 4000,\r\n PRESS_TRANSLATE_Y: 2,\r\n PRESS_DURATION: 50,\r\n CARD_TILT_MAX: 6,\r\n MENU_SINK_DURATION: 200,\r\n MENU_RISE_DURATION: 300,\r\n MENU_ORBIT_DURATION: 320,\r\n LETTER_POP_RATE: 3,\r\n LETTER_BUMP_RATE: 2.666,\r\n} as const\r\n\r\n"],"mappings":";AASA,IAAa,IAAmB;CAC9B,KAAK;CACL,MAAM;CACN,OAAO;CACP,QAAQ;CACR,MAAM;CACN,QAAQ;CAER,UAAU;CACV,WAAW;CACX,aAAa;CACb,YAAY;CACZ,aAAa;CAEb,WAAW;CACX,SAAS;CACT,MAAM;CACN,WAAW;CAEX,YAAY;CACZ,cAAc;CAEd,eAAe;CACf,cAAc;CAEd,WAAW;CACX,YAAY;CACZ,aAAa;CACb,OAAO;CACP,OAAO;CAEP,cAAc;CACd,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB,oBAAoB;CACpB,sBAAsB;CACvB;AAKD,SAAgB,EAAU,GAAa,GAAuB;CAC5D,IAAM,IAAQ,EAAI,QAAQ,KAAK,GAAG;CAIlC,OAAO,QAHG,SAAS,EAAM,MAAM,GAAG,EAAE,EAAE,GAGvB,CAAE,IAFP,SAAS,EAAM,MAAM,GAAG,EAAE,EAAE,GAEjB,CAAE,IADb,SAAS,EAAM,MAAM,GAAG,EAAE,EAAE,GACX,CAAE,IAAI,EAAM;;AAGzC,IAAa,IAAmB;CAC9B,gBAAgB;CAChB,kBAAkB;CAClB,gBAAgB;CAChB,cAAc;CACd,aAAa;CACb,eAAe;CACf,mBAAmB;CACnB,gBAAgB;CAChB,eAAe;CACf,oBAAoB;CACpB,oBAAoB;CACpB,qBAAqB;CACrB,iBAAiB;CACjB,kBAAkB;CACnB"}
|