jaml-ui 0.28.1 → 0.30.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.
Files changed (47) hide show
  1. package/README.md +2 -11
  2. package/dist/assets/{searchPoolWorker-BtlROziN.js → searchPoolWorker-C4xj1WA_.js} +2 -2
  3. package/dist/assets/searchPoolWorker-C4xj1WA_.js.map +1 -0
  4. package/dist/chunks/{Layer-BBPJFHfs.js → Layer-Ckd_T6Fw.js} +1 -1
  5. package/dist/chunks/{Layer-BBPJFHfs.js.map → Layer-Ckd_T6Fw.js.map} +1 -1
  6. package/dist/chunks/{assets-RWUiFSTc.js → assets-D80i9sMq.js} +1 -1
  7. package/dist/chunks/{assets-RWUiFSTc.js.map → assets-D80i9sMq.js.map} +1 -1
  8. package/dist/chunks/runtime-C-It0krH.js +10 -0
  9. package/dist/chunks/runtime-C-It0krH.js.map +1 -0
  10. package/dist/chunks/{searchPoolWorker-D1xR43D2.js → searchPoolWorker-hVVM49SD.js} +2 -2
  11. package/dist/chunks/searchPoolWorker-hVVM49SD.js.map +1 -0
  12. package/dist/chunks/{spriteMapper-CFjN0_TV.js → spriteMapper-C4_5G1Z6.js} +10 -6
  13. package/dist/chunks/{spriteMapper-CFjN0_TV.js.map → spriteMapper-C4_5G1Z6.js.map} +1 -1
  14. package/dist/chunks/{tokens-B65Fzble.js → tokens-Qrhlekc4.js} +1 -1
  15. package/dist/chunks/{tokens-B65Fzble.js.map → tokens-Qrhlekc4.js.map} +1 -1
  16. package/dist/chunks/{ui-BEtq_JNg.js → ui-D_9HO9OO.js} +684 -786
  17. package/dist/chunks/ui-D_9HO9OO.js.map +1 -0
  18. package/dist/components/PaginatedFilterBrowser.d.ts +3 -0
  19. package/dist/config.d.ts +2 -0
  20. package/dist/core.js +8 -8
  21. package/dist/hooks/useAnalyzer.d.ts +0 -11
  22. package/dist/hooks/useMotelyRuntime.d.ts +2 -2
  23. package/dist/index.d.ts +0 -6
  24. package/dist/index.js +3226 -4027
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/motely/runtime.d.ts +3 -0
  27. package/dist/motely.d.ts +2 -1
  28. package/dist/motely.js +2104 -25
  29. package/dist/motely.js.map +1 -1
  30. package/dist/providers/MotelyProvider.d.ts +11 -0
  31. package/dist/r3f.js +4 -4
  32. package/dist/ui/JimboBadge.d.ts +2 -3
  33. package/dist/ui/JimboTextInput.d.ts +5 -0
  34. package/dist/ui/PanelSplitter.d.ts +2 -1
  35. package/dist/ui/hooks.d.ts +0 -1
  36. package/dist/ui/jimbo.css +1 -1
  37. package/dist/ui/panel.d.ts +2 -4
  38. package/dist/ui.d.ts +1 -0
  39. package/dist/ui.js +3 -3
  40. package/jaml.schema.json +1218 -1218
  41. package/package.json +3 -5
  42. package/dist/assets/searchPoolWorker-BtlROziN.js.map +0 -1
  43. package/dist/chunks/motelyItemDecoder-BvFrQpaI.js +0 -2061
  44. package/dist/chunks/motelyItemDecoder-BvFrQpaI.js.map +0 -1
  45. package/dist/chunks/searchPoolWorker-D1xR43D2.js.map +0 -1
  46. package/dist/chunks/ui-BEtq_JNg.js.map +0 -1
  47. package/dist/components/AnalyzerExplorer.d.ts +0 -47
@@ -1 +1 @@
1
- {"version":3,"file":"motely.js","names":[],"sources":["../src/decode/motelySprite.ts","../src/motelyDisplay.ts"],"sourcesContent":["import { decodeMotelyItem, type MotelyRenderableCategory } from \"./motelyItemDecoder.js\";\r\nimport { getSpriteData, SHEET_META } from \"../sprites/spriteMapper.js\";\r\nimport { RANK_MAP, SUIT_MAP } from \"../sprites/spriteData.js\";\r\nimport { resolveJamlAssetUrl } from \"../assets.js\";\r\n\r\nexport interface MotelySpriteData {\r\n atlasPath: string;\r\n gridCol: number;\r\n gridRow: number;\r\n gridCols: number;\r\n gridRows: number;\r\n displayName: string;\r\n category: MotelyRenderableCategory;\r\n}\r\n\r\n/**\r\n * Given a raw motely-wasm item value (which may be a bitpacked integer or raw MotelyItemType),\r\n * resolves it to a sprite atlas path and grid coordinates for rendering.\r\n */\r\nexport function motelyItemToSprite(rawValue: number): MotelySpriteData | null {\r\n const decoded = decodeMotelyItem(rawValue);\r\n if (!decoded) return null;\r\n\r\n if (decoded.category === \"playing\" && decoded.rank && decoded.suit) {\r\n const col = RANK_MAP[decoded.rank];\r\n const row = SUIT_MAP[decoded.suit];\r\n if (col !== undefined && row !== undefined) {\r\n return {\r\n atlasPath: resolveJamlAssetUrl('deck'),\r\n gridCol: col,\r\n gridRow: row,\r\n gridCols: 13,\r\n gridRows: 4,\r\n displayName: decoded.displayName,\r\n category: \"playing\"\r\n };\r\n }\r\n }\r\n\r\n const sprite = getSpriteData(decoded.displayName);\r\n if (!sprite) return null;\r\n\r\n const meta = SHEET_META[sprite.type];\r\n if (!meta) return null;\r\n\r\n return {\r\n atlasPath: resolveJamlAssetUrl(meta.assetKey),\r\n gridCol: sprite.pos.x,\r\n gridRow: sprite.pos.y,\r\n gridCols: meta.cols,\r\n gridRows: meta.rows,\r\n displayName: decoded.displayName,\r\n category: decoded.category\r\n };\r\n}\r\n\r\n/**\r\n * Resolves a sprite by name and category without needing a Motely integer.\r\n */\r\nexport function getMotelySpriteByName(name: string, category: MotelyRenderableCategory = \"unknown\"): MotelySpriteData | null {\r\n if (category === \"playing\") {\r\n // Attempt to parse \"Rank of Suit\"\r\n const match = /^(.*?)\\s+of\\s+(.*?)$/i.exec(name);\r\n if (match) {\r\n const rank = match[1];\r\n const suit = match[2];\r\n const col = RANK_MAP[rank];\r\n const row = SUIT_MAP[suit];\r\n if (col !== undefined && row !== undefined) {\r\n return {\r\n atlasPath: resolveJamlAssetUrl('deck'),\r\n gridCol: col,\r\n gridRow: row,\r\n gridCols: 13,\r\n gridRows: 4,\r\n displayName: name,\r\n category: \"playing\"\r\n };\r\n }\r\n }\r\n }\r\n\r\n const sprite = getSpriteData(name);\r\n if (!sprite) return null;\r\n\r\n const meta = SHEET_META[sprite.type];\r\n if (!meta) return null;\r\n\r\n return {\r\n atlasPath: resolveJamlAssetUrl(meta.assetKey),\r\n gridCol: sprite.pos.x,\r\n gridRow: sprite.pos.y,\r\n gridCols: meta.cols,\r\n gridRows: meta.rows,\r\n displayName: name,\r\n category\r\n };\r\n}\r\n","import { Motely } from \"motely-wasm\";\nimport { MOTELY_ITEM_FORMATS_BY_VALUE } from \"./decode/motelyItemFormats.js\";\n\ntype RuntimeEnum = Record<string, string | number>;\ntype MotelyRuntimeEnums = typeof Motely & Record<string, RuntimeEnum>;\n\nconst MotelyEnums = Motely as MotelyRuntimeEnums;\n\nfunction runtimeEnumKey(\n enumObject: Record<string, unknown>,\n value: number,\n): string | null {\n const key = enumObject[String(value)];\n return typeof key === \"string\" && key.length > 0 ? key : null;\n}\n\nexport function motelyBossDisplayName(value: number): string {\n const key = runtimeEnumKey(MotelyEnums.MotelyBossBlind, value & 0xff);\n return key ?? `boss#${value}`;\n}\n\nexport function motelyBossDisplayNameFromKey(key: string): string {\n return key;\n}\n\nexport function motelyVoucherDisplayName(value: number): string {\n const key = runtimeEnumKey(MotelyEnums.MotelyVoucher, value);\n return key ?? `voucher#${value}`;\n}\n\nexport function motelyVoucherDisplayNameFromKey(key: string): string {\n return key;\n}\n\nexport function motelyTagDisplayName(value: number): string {\n const key = runtimeEnumKey(MotelyEnums.MotelyTag, value);\n return key ?? `tag#${value}`;\n}\n\nexport function motelyTagDisplayNameFromKey(key: string): string {\n return key;\n}\n\nexport function motelyBoosterPackDisplayName(value: number): string {\n const key = runtimeEnumKey(MotelyEnums.MotelyBoosterPack, value);\n return key ?? `pack#${value}`;\n}\n\nexport function motelyBoosterPackDisplayNameFromKey(key: string): string {\n return `${key} Pack`;\n}\n\nexport function motelyItemDisplayNameFromKey(key: string): string {\n return key;\n}\n\nexport function motelyItemDisplayNameFromValue(value: number): string {\n const itemType = value & 0xffff;\n return MOTELY_ITEM_FORMATS_BY_VALUE[itemType as keyof typeof MOTELY_ITEM_FORMATS_BY_VALUE]?.displayName ?? `item#${value}`;\n}\n"],"mappings":";;;;;;AAmBA,SAAgB,EAAmB,GAA2C;CAC5E,IAAM,IAAU,EAAiB,CAAQ;CACzC,IAAI,CAAC,GAAS,OAAO;CAErB,IAAI,EAAQ,aAAa,aAAa,EAAQ,QAAQ,EAAQ,MAAM;EAClE,IAAM,IAAM,EAAS,EAAQ,OACvB,IAAM,EAAS,EAAQ;EAC7B,IAAI,MAAQ,KAAA,KAAa,MAAQ,KAAA,GAC/B,OAAO;GACL,WAAW,EAAoB,MAAM;GACrC,SAAS;GACT,SAAS;GACT,UAAU;GACV,UAAU;GACV,aAAa,EAAQ;GACrB,UAAU;EACZ;CAEJ;CAEA,IAAM,IAAS,EAAc,EAAQ,WAAW;CAChD,IAAI,CAAC,GAAQ,OAAO;CAEpB,IAAM,IAAO,EAAW,EAAO;CAG/B,OAFK,IAEE;EACL,WAAW,EAAoB,EAAK,QAAQ;EAC5C,SAAS,EAAO,IAAI;EACpB,SAAS,EAAO,IAAI;EACpB,UAAU,EAAK;EACf,UAAU,EAAK;EACf,aAAa,EAAQ;EACrB,UAAU,EAAQ;CACpB,IAVkB;AAWpB;AAKA,SAAgB,EAAsB,GAAc,IAAqC,WAAoC;CAC3H,IAAI,MAAa,WAAW;EAE1B,IAAM,IAAQ,wBAAwB,KAAK,CAAI;EAC/C,IAAI,GAAO;GACP,IAAM,IAAO,EAAM,IACb,IAAO,EAAM,IACb,IAAM,EAAS,IACf,IAAM,EAAS;GACrB,IAAI,MAAQ,KAAA,KAAa,MAAQ,KAAA,GAC/B,OAAO;IACL,WAAW,EAAoB,MAAM;IACrC,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,aAAa;IACb,UAAU;GACZ;EAEN;CACF;CAEA,IAAM,IAAS,EAAc,CAAI;CACjC,IAAI,CAAC,GAAQ,OAAO;CAEpB,IAAM,IAAO,EAAW,EAAO;CAG/B,OAFK,IAEE;EACL,WAAW,EAAoB,EAAK,QAAQ;EAC5C,SAAS,EAAO,IAAI;EACpB,SAAS,EAAO,IAAI;EACpB,UAAU,EAAK;EACf,UAAU,EAAK;EACf,aAAa;EACb;CACF,IAVkB;AAWpB;;;AC3FA,IAAM,IAAc;AAEpB,SAAS,EACP,GACA,GACe;CACf,IAAM,IAAM,EAAW,OAAO,CAAK;CACnC,OAAO,OAAO,KAAQ,YAAY,EAAI,SAAS,IAAI,IAAM;AAC3D;AAEA,SAAgB,EAAsB,GAAuB;CAE3D,OADY,EAAe,EAAY,iBAAiB,IAAQ,GACzD,KAAO,QAAQ;AACxB;AAEA,SAAgB,EAA6B,GAAqB;CAChE,OAAO;AACT;AAEA,SAAgB,EAAyB,GAAuB;CAE9D,OADY,EAAe,EAAY,eAAe,CAC/C,KAAO,WAAW;AAC3B;AAEA,SAAgB,EAAgC,GAAqB;CACnE,OAAO;AACT;AAEA,SAAgB,EAAqB,GAAuB;CAE1D,OADY,EAAe,EAAY,WAAW,CAC3C,KAAO,OAAO;AACvB;AAEA,SAAgB,EAA4B,GAAqB;CAC/D,OAAO;AACT;AAEA,SAAgB,EAA6B,GAAuB;CAElE,OADY,EAAe,EAAY,mBAAmB,CACnD,KAAO,QAAQ;AACxB;AAEA,SAAgB,EAAoC,GAAqB;CACvE,OAAO,GAAG,EAAI;AAChB;AAEA,SAAgB,EAA6B,GAAqB;CAChE,OAAO;AACT;AAEA,SAAgB,EAA+B,GAAuB;CAEpE,OAAO,EADU,IAAQ,QACmE,eAAe,QAAQ;AACrH"}
1
+ {"version":3,"file":"motely.js","names":[],"sources":["../src/decode/motelyItemFormats.ts","../src/decode/motelyItemDecoder.ts","../src/decode/motelySprite.ts","../src/motelyDisplay.ts","../src/hooks/useJamlLibrary.ts","../src/providers/MotelyProvider.tsx","../src/hooks/useMotelyRuntime.ts"],"sourcesContent":["export const MOTELY_ITEM_FORMATS_BY_VALUE = Object.freeze({\n 4096: Object.freeze({ value: 4096, enumName: \"TwoOfClubs\", displayName: \"2 of Clubs\", category: \"Standardcard\" }),\n 4097: Object.freeze({ value: 4097, enumName: \"ThreeOfClubs\", displayName: \"3 of Clubs\", category: \"Standardcard\" }),\n 4098: Object.freeze({ value: 4098, enumName: \"FourOfClubs\", displayName: \"4 of Clubs\", category: \"Standardcard\" }),\n 4099: Object.freeze({ value: 4099, enumName: \"FiveOfClubs\", displayName: \"5 of Clubs\", category: \"Standardcard\" }),\n 4100: Object.freeze({ value: 4100, enumName: \"SixOfClubs\", displayName: \"6 of Clubs\", category: \"Standardcard\" }),\n 4101: Object.freeze({ value: 4101, enumName: \"SevenOfClubs\", displayName: \"7 of Clubs\", category: \"Standardcard\" }),\n 4102: Object.freeze({ value: 4102, enumName: \"EightOfClubs\", displayName: \"8 of Clubs\", category: \"Standardcard\" }),\n 4103: Object.freeze({ value: 4103, enumName: \"NineOfClubs\", displayName: \"9 of Clubs\", category: \"Standardcard\" }),\n 4104: Object.freeze({ value: 4104, enumName: \"TenOfClubs\", displayName: \"10 of Clubs\", category: \"Standardcard\" }),\n 4105: Object.freeze({ value: 4105, enumName: \"JackOfClubs\", displayName: \"Jack of Clubs\", category: \"Standardcard\" }),\n 4106: Object.freeze({ value: 4106, enumName: \"QueenOfClubs\", displayName: \"Queen of Clubs\", category: \"Standardcard\" }),\n 4107: Object.freeze({ value: 4107, enumName: \"KingOfClubs\", displayName: \"King of Clubs\", category: \"Standardcard\" }),\n 4108: Object.freeze({ value: 4108, enumName: \"AceOfClubs\", displayName: \"Ace of Clubs\", category: \"Standardcard\" }),\n 4112: Object.freeze({ value: 4112, enumName: \"TwoOfDiamonds\", displayName: \"2 of Diamonds\", category: \"Standardcard\" }),\n 4113: Object.freeze({ value: 4113, enumName: \"ThreeOfDiamonds\", displayName: \"3 of Diamonds\", category: \"Standardcard\" }),\n 4114: Object.freeze({ value: 4114, enumName: \"FourOfDiamonds\", displayName: \"4 of Diamonds\", category: \"Standardcard\" }),\n 4115: Object.freeze({ value: 4115, enumName: \"FiveOfDiamonds\", displayName: \"5 of Diamonds\", category: \"Standardcard\" }),\n 4116: Object.freeze({ value: 4116, enumName: \"SixOfDiamonds\", displayName: \"6 of Diamonds\", category: \"Standardcard\" }),\n 4117: Object.freeze({ value: 4117, enumName: \"SevenOfDiamonds\", displayName: \"7 of Diamonds\", category: \"Standardcard\" }),\n 4118: Object.freeze({ value: 4118, enumName: \"EightOfDiamonds\", displayName: \"8 of Diamonds\", category: \"Standardcard\" }),\n 4119: Object.freeze({ value: 4119, enumName: \"NineOfDiamonds\", displayName: \"9 of Diamonds\", category: \"Standardcard\" }),\n 4120: Object.freeze({ value: 4120, enumName: \"TenOfDiamonds\", displayName: \"10 of Diamonds\", category: \"Standardcard\" }),\n 4121: Object.freeze({ value: 4121, enumName: \"JackOfDiamonds\", displayName: \"Jack of Diamonds\", category: \"Standardcard\" }),\n 4122: Object.freeze({ value: 4122, enumName: \"QueenOfDiamonds\", displayName: \"Queen of Diamonds\", category: \"Standardcard\" }),\n 4123: Object.freeze({ value: 4123, enumName: \"KingOfDiamonds\", displayName: \"King of Diamonds\", category: \"Standardcard\" }),\n 4124: Object.freeze({ value: 4124, enumName: \"AceOfDiamonds\", displayName: \"Ace of Diamonds\", category: \"Standardcard\" }),\n 4128: Object.freeze({ value: 4128, enumName: \"TwoOfHearts\", displayName: \"2 of Hearts\", category: \"Standardcard\" }),\n 4129: Object.freeze({ value: 4129, enumName: \"ThreeOfHearts\", displayName: \"3 of Hearts\", category: \"Standardcard\" }),\n 4130: Object.freeze({ value: 4130, enumName: \"FourOfHearts\", displayName: \"4 of Hearts\", category: \"Standardcard\" }),\n 4131: Object.freeze({ value: 4131, enumName: \"FiveOfHearts\", displayName: \"5 of Hearts\", category: \"Standardcard\" }),\n 4132: Object.freeze({ value: 4132, enumName: \"SixOfHearts\", displayName: \"6 of Hearts\", category: \"Standardcard\" }),\n 4133: Object.freeze({ value: 4133, enumName: \"SevenOfHearts\", displayName: \"7 of Hearts\", category: \"Standardcard\" }),\n 4134: Object.freeze({ value: 4134, enumName: \"EightOfHearts\", displayName: \"8 of Hearts\", category: \"Standardcard\" }),\n 4135: Object.freeze({ value: 4135, enumName: \"NineOfHearts\", displayName: \"9 of Hearts\", category: \"Standardcard\" }),\n 4136: Object.freeze({ value: 4136, enumName: \"TenOfHearts\", displayName: \"10 of Hearts\", category: \"Standardcard\" }),\n 4137: Object.freeze({ value: 4137, enumName: \"JackOfHearts\", displayName: \"Jack of Hearts\", category: \"Standardcard\" }),\n 4138: Object.freeze({ value: 4138, enumName: \"QueenOfHearts\", displayName: \"Queen of Hearts\", category: \"Standardcard\" }),\n 4139: Object.freeze({ value: 4139, enumName: \"KingOfHearts\", displayName: \"King of Hearts\", category: \"Standardcard\" }),\n 4140: Object.freeze({ value: 4140, enumName: \"AceOfHearts\", displayName: \"Ace of Hearts\", category: \"Standardcard\" }),\n 4144: Object.freeze({ value: 4144, enumName: \"TwoOfSpades\", displayName: \"2 of Spades\", category: \"Standardcard\" }),\n 4145: Object.freeze({ value: 4145, enumName: \"ThreeOfSpades\", displayName: \"3 of Spades\", category: \"Standardcard\" }),\n 4146: Object.freeze({ value: 4146, enumName: \"FourOfSpades\", displayName: \"4 of Spades\", category: \"Standardcard\" }),\n 4147: Object.freeze({ value: 4147, enumName: \"FiveOfSpades\", displayName: \"5 of Spades\", category: \"Standardcard\" }),\n 4148: Object.freeze({ value: 4148, enumName: \"SixOfSpades\", displayName: \"6 of Spades\", category: \"Standardcard\" }),\n 4149: Object.freeze({ value: 4149, enumName: \"SevenOfSpades\", displayName: \"7 of Spades\", category: \"Standardcard\" }),\n 4150: Object.freeze({ value: 4150, enumName: \"EightOfSpades\", displayName: \"8 of Spades\", category: \"Standardcard\" }),\n 4151: Object.freeze({ value: 4151, enumName: \"NineOfSpades\", displayName: \"9 of Spades\", category: \"Standardcard\" }),\n 4152: Object.freeze({ value: 4152, enumName: \"TenOfSpades\", displayName: \"10 of Spades\", category: \"Standardcard\" }),\n 4153: Object.freeze({ value: 4153, enumName: \"JackOfSpades\", displayName: \"Jack of Spades\", category: \"Standardcard\" }),\n 4154: Object.freeze({ value: 4154, enumName: \"QueenOfSpades\", displayName: \"Queen of Spades\", category: \"Standardcard\" }),\n 4155: Object.freeze({ value: 4155, enumName: \"KingOfSpades\", displayName: \"King of Spades\", category: \"Standardcard\" }),\n 4156: Object.freeze({ value: 4156, enumName: \"AceOfSpades\", displayName: \"Ace of Spades\", category: \"Standardcard\" }),\n 8192: Object.freeze({ value: 8192, enumName: \"Familiar\", displayName: \"Familiar\", category: \"SpectralCard\" }),\n 8193: Object.freeze({ value: 8193, enumName: \"Grim\", displayName: \"Grim\", category: \"SpectralCard\" }),\n 8194: Object.freeze({ value: 8194, enumName: \"Incantation\", displayName: \"Incantation\", category: \"SpectralCard\" }),\n 8195: Object.freeze({ value: 8195, enumName: \"Talisman\", displayName: \"Talisman\", category: \"SpectralCard\" }),\n 8196: Object.freeze({ value: 8196, enumName: \"Aura\", displayName: \"Aura\", category: \"SpectralCard\" }),\n 8197: Object.freeze({ value: 8197, enumName: \"Wraith\", displayName: \"Wraith\", category: \"SpectralCard\" }),\n 8198: Object.freeze({ value: 8198, enumName: \"Sigil\", displayName: \"Sigil\", category: \"SpectralCard\" }),\n 8199: Object.freeze({ value: 8199, enumName: \"Ouija\", displayName: \"Ouija\", category: \"SpectralCard\" }),\n 8200: Object.freeze({ value: 8200, enumName: \"Ectoplasm\", displayName: \"Ectoplasm\", category: \"SpectralCard\" }),\n 8201: Object.freeze({ value: 8201, enumName: \"Immolate\", displayName: \"Immolate\", category: \"SpectralCard\" }),\n 8202: Object.freeze({ value: 8202, enumName: \"Ankh\", displayName: \"Ankh\", category: \"SpectralCard\" }),\n 8203: Object.freeze({ value: 8203, enumName: \"DejaVu\", displayName: \"Deja Vu\", category: \"SpectralCard\" }),\n 8204: Object.freeze({ value: 8204, enumName: \"Hex\", displayName: \"Hex\", category: \"SpectralCard\" }),\n 8205: Object.freeze({ value: 8205, enumName: \"Trance\", displayName: \"Trance\", category: \"SpectralCard\" }),\n 8206: Object.freeze({ value: 8206, enumName: \"Medium\", displayName: \"Medium\", category: \"SpectralCard\" }),\n 8207: Object.freeze({ value: 8207, enumName: \"Cryptid\", displayName: \"Cryptid\", category: \"SpectralCard\" }),\n 8208: Object.freeze({ value: 8208, enumName: \"TheSoul\", displayName: \"The Soul\", category: \"SpectralCard\" }),\n 8209: Object.freeze({ value: 8209, enumName: \"BlackHole\", displayName: \"Black Hole\", category: \"SpectralCard\" }),\n 12288: Object.freeze({ value: 12288, enumName: \"TheFool\", displayName: \"The Fool\", category: \"TarotCard\" }),\n 12289: Object.freeze({ value: 12289, enumName: \"TheMagician\", displayName: \"The Magician\", category: \"TarotCard\" }),\n 12290: Object.freeze({ value: 12290, enumName: \"TheHighPriestess\", displayName: \"The High Priestess\", category: \"TarotCard\" }),\n 12291: Object.freeze({ value: 12291, enumName: \"TheEmpress\", displayName: \"The Empress\", category: \"TarotCard\" }),\n 12292: Object.freeze({ value: 12292, enumName: \"TheEmperor\", displayName: \"The Emperor\", category: \"TarotCard\" }),\n 12293: Object.freeze({ value: 12293, enumName: \"TheHierophant\", displayName: \"The Hierophant\", category: \"TarotCard\" }),\n 12294: Object.freeze({ value: 12294, enumName: \"TheLovers\", displayName: \"The Lovers\", category: \"TarotCard\" }),\n 12295: Object.freeze({ value: 12295, enumName: \"TheChariot\", displayName: \"The Chariot\", category: \"TarotCard\" }),\n 12296: Object.freeze({ value: 12296, enumName: \"Justice\", displayName: \"Justice\", category: \"TarotCard\" }),\n 12297: Object.freeze({ value: 12297, enumName: \"TheHermit\", displayName: \"The Hermit\", category: \"TarotCard\" }),\n 12298: Object.freeze({ value: 12298, enumName: \"TheWheelOfFortune\", displayName: \"The Wheel of Fortune\", category: \"TarotCard\" }),\n 12299: Object.freeze({ value: 12299, enumName: \"Strength\", displayName: \"Strength\", category: \"TarotCard\" }),\n 12300: Object.freeze({ value: 12300, enumName: \"TheHangedMan\", displayName: \"The Hanged Man\", category: \"TarotCard\" }),\n 12301: Object.freeze({ value: 12301, enumName: \"Death\", displayName: \"Death\", category: \"TarotCard\" }),\n 12302: Object.freeze({ value: 12302, enumName: \"Temperance\", displayName: \"Temperance\", category: \"TarotCard\" }),\n 12303: Object.freeze({ value: 12303, enumName: \"TheDevil\", displayName: \"The Devil\", category: \"TarotCard\" }),\n 12304: Object.freeze({ value: 12304, enumName: \"TheTower\", displayName: \"The Tower\", category: \"TarotCard\" }),\n 12305: Object.freeze({ value: 12305, enumName: \"TheStar\", displayName: \"The Star\", category: \"TarotCard\" }),\n 12306: Object.freeze({ value: 12306, enumName: \"TheMoon\", displayName: \"The Moon\", category: \"TarotCard\" }),\n 12307: Object.freeze({ value: 12307, enumName: \"TheSun\", displayName: \"The Sun\", category: \"TarotCard\" }),\n 12308: Object.freeze({ value: 12308, enumName: \"Judgement\", displayName: \"Judgement\", category: \"TarotCard\" }),\n 12309: Object.freeze({ value: 12309, enumName: \"TheWorld\", displayName: \"The World\", category: \"TarotCard\" }),\n 16384: Object.freeze({ value: 16384, enumName: \"Mercury\", displayName: \"Mercury\", category: \"PlanetCard\" }),\n 16385: Object.freeze({ value: 16385, enumName: \"Venus\", displayName: \"Venus\", category: \"PlanetCard\" }),\n 16386: Object.freeze({ value: 16386, enumName: \"Earth\", displayName: \"Earth\", category: \"PlanetCard\" }),\n 16387: Object.freeze({ value: 16387, enumName: \"Mars\", displayName: \"Mars\", category: \"PlanetCard\" }),\n 16388: Object.freeze({ value: 16388, enumName: \"Jupiter\", displayName: \"Jupiter\", category: \"PlanetCard\" }),\n 16389: Object.freeze({ value: 16389, enumName: \"Saturn\", displayName: \"Saturn\", category: \"PlanetCard\" }),\n 16390: Object.freeze({ value: 16390, enumName: \"Uranus\", displayName: \"Uranus\", category: \"PlanetCard\" }),\n 16391: Object.freeze({ value: 16391, enumName: \"Neptune\", displayName: \"Neptune\", category: \"PlanetCard\" }),\n 16392: Object.freeze({ value: 16392, enumName: \"Pluto\", displayName: \"Pluto\", category: \"PlanetCard\" }),\n 16393: Object.freeze({ value: 16393, enumName: \"PlanetX\", displayName: \"Planet X\", category: \"PlanetCard\" }),\n 16394: Object.freeze({ value: 16394, enumName: \"Ceres\", displayName: \"Ceres\", category: \"PlanetCard\" }),\n 16395: Object.freeze({ value: 16395, enumName: \"Eris\", displayName: \"Eris\", category: \"PlanetCard\" }),\n 20480: Object.freeze({ value: 20480, enumName: \"Joker\", displayName: \"Joker\", category: \"Joker\" }),\n 20481: Object.freeze({ value: 20481, enumName: \"GreedyJoker\", displayName: \"Greedy Joker\", category: \"Joker\" }),\n 20482: Object.freeze({ value: 20482, enumName: \"LustyJoker\", displayName: \"Lusty Joker\", category: \"Joker\" }),\n 20483: Object.freeze({ value: 20483, enumName: \"WrathfulJoker\", displayName: \"Wrathful Joker\", category: \"Joker\" }),\n 20484: Object.freeze({ value: 20484, enumName: \"GluttonousJoker\", displayName: \"Gluttonous Joker\", category: \"Joker\" }),\n 20485: Object.freeze({ value: 20485, enumName: \"JollyJoker\", displayName: \"Jolly Joker\", category: \"Joker\" }),\n 20486: Object.freeze({ value: 20486, enumName: \"ZanyJoker\", displayName: \"Zany Joker\", category: \"Joker\" }),\n 20487: Object.freeze({ value: 20487, enumName: \"MadJoker\", displayName: \"Mad Joker\", category: \"Joker\" }),\n 20488: Object.freeze({ value: 20488, enumName: \"CrazyJoker\", displayName: \"Crazy Joker\", category: \"Joker\" }),\n 20489: Object.freeze({ value: 20489, enumName: \"DrollJoker\", displayName: \"Droll Joker\", category: \"Joker\" }),\n 20490: Object.freeze({ value: 20490, enumName: \"SlyJoker\", displayName: \"Sly Joker\", category: \"Joker\" }),\n 20491: Object.freeze({ value: 20491, enumName: \"WilyJoker\", displayName: \"Wily Joker\", category: \"Joker\" }),\n 20492: Object.freeze({ value: 20492, enumName: \"CleverJoker\", displayName: \"Clever Joker\", category: \"Joker\" }),\n 20493: Object.freeze({ value: 20493, enumName: \"DeviousJoker\", displayName: \"Devious Joker\", category: \"Joker\" }),\n 20494: Object.freeze({ value: 20494, enumName: \"CraftyJoker\", displayName: \"Crafty Joker\", category: \"Joker\" }),\n 20495: Object.freeze({ value: 20495, enumName: \"HalfJoker\", displayName: \"Half Joker\", category: \"Joker\" }),\n 20496: Object.freeze({ value: 20496, enumName: \"CreditCard\", displayName: \"Credit Card\", category: \"Joker\" }),\n 20497: Object.freeze({ value: 20497, enumName: \"Banner\", displayName: \"Banner\", category: \"Joker\" }),\n 20498: Object.freeze({ value: 20498, enumName: \"MysticSummit\", displayName: \"Mystic Summit\", category: \"Joker\" }),\n 20499: Object.freeze({ value: 20499, enumName: \"EightBall\", displayName: \"8 Ball\", category: \"Joker\" }),\n 20500: Object.freeze({ value: 20500, enumName: \"Misprint\", displayName: \"Misprint\", category: \"Joker\" }),\n 20501: Object.freeze({ value: 20501, enumName: \"RaisedFist\", displayName: \"Raised Fist\", category: \"Joker\" }),\n 20502: Object.freeze({ value: 20502, enumName: \"ChaostheClown\", displayName: \"Chaos the Clown\", category: \"Joker\" }),\n 20503: Object.freeze({ value: 20503, enumName: \"ScaryFace\", displayName: \"Scary Face\", category: \"Joker\" }),\n 20504: Object.freeze({ value: 20504, enumName: \"AbstractJoker\", displayName: \"Abstract Joker\", category: \"Joker\" }),\n 20505: Object.freeze({ value: 20505, enumName: \"DelayedGratification\", displayName: \"Delayed Gratification\", category: \"Joker\" }),\n 20506: Object.freeze({ value: 20506, enumName: \"GrosMichel\", displayName: \"Gros Michel\", category: \"Joker\" }),\n 20507: Object.freeze({ value: 20507, enumName: \"EvenSteven\", displayName: \"Even Steven\", category: \"Joker\" }),\n 20508: Object.freeze({ value: 20508, enumName: \"OddTodd\", displayName: \"Odd Todd\", category: \"Joker\" }),\n 20509: Object.freeze({ value: 20509, enumName: \"Scholar\", displayName: \"Scholar\", category: \"Joker\" }),\n 20510: Object.freeze({ value: 20510, enumName: \"BusinessCard\", displayName: \"Business Card\", category: \"Joker\" }),\n 20511: Object.freeze({ value: 20511, enumName: \"Supernova\", displayName: \"Supernova\", category: \"Joker\" }),\n 20512: Object.freeze({ value: 20512, enumName: \"RideTheBus\", displayName: \"Ride the Bus\", category: \"Joker\" }),\n 20513: Object.freeze({ value: 20513, enumName: \"Egg\", displayName: \"Egg\", category: \"Joker\" }),\n 20514: Object.freeze({ value: 20514, enumName: \"Runner\", displayName: \"Runner\", category: \"Joker\" }),\n 20515: Object.freeze({ value: 20515, enumName: \"IceCream\", displayName: \"Ice Cream\", category: \"Joker\" }),\n 20516: Object.freeze({ value: 20516, enumName: \"Splash\", displayName: \"Splash\", category: \"Joker\" }),\n 20517: Object.freeze({ value: 20517, enumName: \"BlueJoker\", displayName: \"Blue Joker\", category: \"Joker\" }),\n 20518: Object.freeze({ value: 20518, enumName: \"FacelessJoker\", displayName: \"Faceless Joker\", category: \"Joker\" }),\n 20519: Object.freeze({ value: 20519, enumName: \"GreenJoker\", displayName: \"Green Joker\", category: \"Joker\" }),\n 20520: Object.freeze({ value: 20520, enumName: \"Superposition\", displayName: \"Superposition\", category: \"Joker\" }),\n 20521: Object.freeze({ value: 20521, enumName: \"ToDoList\", displayName: \"To Do List\", category: \"Joker\" }),\n 20522: Object.freeze({ value: 20522, enumName: \"Cavendish\", displayName: \"Cavendish\", category: \"Joker\" }),\n 20523: Object.freeze({ value: 20523, enumName: \"RedCard\", displayName: \"Red Card\", category: \"Joker\" }),\n 20524: Object.freeze({ value: 20524, enumName: \"SquareJoker\", displayName: \"Square Joker\", category: \"Joker\" }),\n 20525: Object.freeze({ value: 20525, enumName: \"RiffRaff\", displayName: \"Riff-raff\", category: \"Joker\" }),\n 20526: Object.freeze({ value: 20526, enumName: \"Photograph\", displayName: \"Photograph\", category: \"Joker\" }),\n 20527: Object.freeze({ value: 20527, enumName: \"ReservedParking\", displayName: \"Reserved Parking\", category: \"Joker\" }),\n 20528: Object.freeze({ value: 20528, enumName: \"MailInRebate\", displayName: \"Mail In Rebate\", category: \"Joker\" }),\n 20529: Object.freeze({ value: 20529, enumName: \"Hallucination\", displayName: \"Hallucination\", category: \"Joker\" }),\n 20530: Object.freeze({ value: 20530, enumName: \"FortuneTeller\", displayName: \"Fortune Teller\", category: \"Joker\" }),\n 20531: Object.freeze({ value: 20531, enumName: \"Juggler\", displayName: \"Juggler\", category: \"Joker\" }),\n 20532: Object.freeze({ value: 20532, enumName: \"Drunkard\", displayName: \"Drunkard\", category: \"Joker\" }),\n 20533: Object.freeze({ value: 20533, enumName: \"GoldenJoker\", displayName: \"Golden Joker\", category: \"Joker\" }),\n 20534: Object.freeze({ value: 20534, enumName: \"Popcorn\", displayName: \"Popcorn\", category: \"Joker\" }),\n 20535: Object.freeze({ value: 20535, enumName: \"WalkieTalkie\", displayName: \"Walkie Talkie\", category: \"Joker\" }),\n 20536: Object.freeze({ value: 20536, enumName: \"SmileyFace\", displayName: \"Smiley Face\", category: \"Joker\" }),\n 20537: Object.freeze({ value: 20537, enumName: \"GoldenTicket\", displayName: \"Golden Ticket\", category: \"Joker\" }),\n 20538: Object.freeze({ value: 20538, enumName: \"Swashbuckler\", displayName: \"Swashbuckler\", category: \"Joker\" }),\n 20539: Object.freeze({ value: 20539, enumName: \"HangingChad\", displayName: \"Hanging Chad\", category: \"Joker\" }),\n 20540: Object.freeze({ value: 20540, enumName: \"ShootTheMoon\", displayName: \"Shoot the Moon\", category: \"Joker\" }),\n 21504: Object.freeze({ value: 21504, enumName: \"JokerStencil\", displayName: \"Joker Stencil\", category: \"Joker\" }),\n 21505: Object.freeze({ value: 21505, enumName: \"FourFingers\", displayName: \"Four Fingers\", category: \"Joker\" }),\n 21506: Object.freeze({ value: 21506, enumName: \"Mime\", displayName: \"Mime\", category: \"Joker\" }),\n 21507: Object.freeze({ value: 21507, enumName: \"CeremonialDagger\", displayName: \"Ceremonial Dagger\", category: \"Joker\" }),\n 21508: Object.freeze({ value: 21508, enumName: \"MarbleJoker\", displayName: \"Marble Joker\", category: \"Joker\" }),\n 21509: Object.freeze({ value: 21509, enumName: \"LoyaltyCard\", displayName: \"Loyalty Card\", category: \"Joker\" }),\n 21510: Object.freeze({ value: 21510, enumName: \"Dusk\", displayName: \"Dusk\", category: \"Joker\" }),\n 21511: Object.freeze({ value: 21511, enumName: \"Fibonacci\", displayName: \"Fibonacci\", category: \"Joker\" }),\n 21512: Object.freeze({ value: 21512, enumName: \"SteelJoker\", displayName: \"Steel Joker\", category: \"Joker\" }),\n 21513: Object.freeze({ value: 21513, enumName: \"Hack\", displayName: \"Hack\", category: \"Joker\" }),\n 21514: Object.freeze({ value: 21514, enumName: \"Pareidolia\", displayName: \"Pareidolia\", category: \"Joker\" }),\n 21515: Object.freeze({ value: 21515, enumName: \"SpaceJoker\", displayName: \"Space Joker\", category: \"Joker\" }),\n 21516: Object.freeze({ value: 21516, enumName: \"Burglar\", displayName: \"Burglar\", category: \"Joker\" }),\n 21517: Object.freeze({ value: 21517, enumName: \"Blackboard\", displayName: \"Blackboard\", category: \"Joker\" }),\n 21518: Object.freeze({ value: 21518, enumName: \"SixthSense\", displayName: \"Sixth Sense\", category: \"Joker\" }),\n 21519: Object.freeze({ value: 21519, enumName: \"Constellation\", displayName: \"Constellation\", category: \"Joker\" }),\n 21520: Object.freeze({ value: 21520, enumName: \"Hiker\", displayName: \"Hiker\", category: \"Joker\" }),\n 21521: Object.freeze({ value: 21521, enumName: \"CardSharp\", displayName: \"Card Sharp\", category: \"Joker\" }),\n 21522: Object.freeze({ value: 21522, enumName: \"Madness\", displayName: \"Madness\", category: \"Joker\" }),\n 21523: Object.freeze({ value: 21523, enumName: \"Seance\", displayName: \"Seance\", category: \"Joker\" }),\n 21524: Object.freeze({ value: 21524, enumName: \"Vampire\", displayName: \"Vampire\", category: \"Joker\" }),\n 21525: Object.freeze({ value: 21525, enumName: \"Shortcut\", displayName: \"Shortcut\", category: \"Joker\" }),\n 21526: Object.freeze({ value: 21526, enumName: \"Hologram\", displayName: \"Hologram\", category: \"Joker\" }),\n 21527: Object.freeze({ value: 21527, enumName: \"Cloud9\", displayName: \"Cloud 9\", category: \"Joker\" }),\n 21528: Object.freeze({ value: 21528, enumName: \"Rocket\", displayName: \"Rocket\", category: \"Joker\" }),\n 21529: Object.freeze({ value: 21529, enumName: \"MidasMask\", displayName: \"Midas Mask\", category: \"Joker\" }),\n 21530: Object.freeze({ value: 21530, enumName: \"Luchador\", displayName: \"Luchador\", category: \"Joker\" }),\n 21531: Object.freeze({ value: 21531, enumName: \"GiftCard\", displayName: \"Gift Card\", category: \"Joker\" }),\n 21532: Object.freeze({ value: 21532, enumName: \"TurtleBean\", displayName: \"Turtle Bean\", category: \"Joker\" }),\n 21533: Object.freeze({ value: 21533, enumName: \"Erosion\", displayName: \"Erosion\", category: \"Joker\" }),\n 21534: Object.freeze({ value: 21534, enumName: \"ToTheMoon\", displayName: \"To the Moon\", category: \"Joker\" }),\n 21535: Object.freeze({ value: 21535, enumName: \"StoneJoker\", displayName: \"Stone Joker\", category: \"Joker\" }),\n 21536: Object.freeze({ value: 21536, enumName: \"LuckyCat\", displayName: \"Lucky Cat\", category: \"Joker\" }),\n 21537: Object.freeze({ value: 21537, enumName: \"Bull\", displayName: \"Bull\", category: \"Joker\" }),\n 21538: Object.freeze({ value: 21538, enumName: \"DietCola\", displayName: \"Diet Cola\", category: \"Joker\" }),\n 21539: Object.freeze({ value: 21539, enumName: \"TradingCard\", displayName: \"Trading Card\", category: \"Joker\" }),\n 21540: Object.freeze({ value: 21540, enumName: \"FlashCard\", displayName: \"Flash Card\", category: \"Joker\" }),\n 21541: Object.freeze({ value: 21541, enumName: \"SpareTrousers\", displayName: \"Spare Trousers\", category: \"Joker\" }),\n 21542: Object.freeze({ value: 21542, enumName: \"Ramen\", displayName: \"Ramen\", category: \"Joker\" }),\n 21543: Object.freeze({ value: 21543, enumName: \"Seltzer\", displayName: \"Seltzer\", category: \"Joker\" }),\n 21544: Object.freeze({ value: 21544, enumName: \"Castle\", displayName: \"Castle\", category: \"Joker\" }),\n 21545: Object.freeze({ value: 21545, enumName: \"MrBones\", displayName: \"Mr. Bones\", category: \"Joker\" }),\n 21546: Object.freeze({ value: 21546, enumName: \"Acrobat\", displayName: \"Acrobat\", category: \"Joker\" }),\n 21547: Object.freeze({ value: 21547, enumName: \"SockAndBuskin\", displayName: \"Sock and Buskin\", category: \"Joker\" }),\n 21548: Object.freeze({ value: 21548, enumName: \"Troubadour\", displayName: \"Troubadour\", category: \"Joker\" }),\n 21549: Object.freeze({ value: 21549, enumName: \"Certificate\", displayName: \"Certificate\", category: \"Joker\" }),\n 21550: Object.freeze({ value: 21550, enumName: \"SmearedJoker\", displayName: \"Smeared Joker\", category: \"Joker\" }),\n 21551: Object.freeze({ value: 21551, enumName: \"Throwback\", displayName: \"Throwback\", category: \"Joker\" }),\n 21552: Object.freeze({ value: 21552, enumName: \"RoughGem\", displayName: \"Rough Gem\", category: \"Joker\" }),\n 21553: Object.freeze({ value: 21553, enumName: \"Bloodstone\", displayName: \"Bloodstone\", category: \"Joker\" }),\n 21554: Object.freeze({ value: 21554, enumName: \"Arrowhead\", displayName: \"Arrowhead\", category: \"Joker\" }),\n 21555: Object.freeze({ value: 21555, enumName: \"OnyxAgate\", displayName: \"Onyx Agate\", category: \"Joker\" }),\n 21556: Object.freeze({ value: 21556, enumName: \"GlassJoker\", displayName: \"Glass Joker\", category: \"Joker\" }),\n 21557: Object.freeze({ value: 21557, enumName: \"Showman\", displayName: \"Showman\", category: \"Joker\" }),\n 21558: Object.freeze({ value: 21558, enumName: \"FlowerPot\", displayName: \"Flower Pot\", category: \"Joker\" }),\n 21559: Object.freeze({ value: 21559, enumName: \"MerryAndy\", displayName: \"Merry Andy\", category: \"Joker\" }),\n 21560: Object.freeze({ value: 21560, enumName: \"OopsAll6s\", displayName: \"Oops! All 6s\", category: \"Joker\" }),\n 21561: Object.freeze({ value: 21561, enumName: \"TheIdol\", displayName: \"The Idol\", category: \"Joker\" }),\n 21562: Object.freeze({ value: 21562, enumName: \"SeeingDouble\", displayName: \"Seeing Double\", category: \"Joker\" }),\n 21563: Object.freeze({ value: 21563, enumName: \"Matador\", displayName: \"Matador\", category: \"Joker\" }),\n 21564: Object.freeze({ value: 21564, enumName: \"Satellite\", displayName: \"Satellite\", category: \"Joker\" }),\n 21565: Object.freeze({ value: 21565, enumName: \"Cartomancer\", displayName: \"Cartomancer\", category: \"Joker\" }),\n 21566: Object.freeze({ value: 21566, enumName: \"Astronomer\", displayName: \"Astronomer\", category: \"Joker\" }),\n 21567: Object.freeze({ value: 21567, enumName: \"Bootstraps\", displayName: \"Bootstraps\", category: \"Joker\" }),\n 22528: Object.freeze({ value: 22528, enumName: \"DNA\", displayName: \"DNA\", category: \"Joker\" }),\n 22529: Object.freeze({ value: 22529, enumName: \"Vagabond\", displayName: \"Vagabond\", category: \"Joker\" }),\n 22530: Object.freeze({ value: 22530, enumName: \"Baron\", displayName: \"Baron\", category: \"Joker\" }),\n 22531: Object.freeze({ value: 22531, enumName: \"Obelisk\", displayName: \"Obelisk\", category: \"Joker\" }),\n 22532: Object.freeze({ value: 22532, enumName: \"BaseballCard\", displayName: \"Baseball Card\", category: \"Joker\" }),\n 22533: Object.freeze({ value: 22533, enumName: \"AncientJoker\", displayName: \"Ancient Joker\", category: \"Joker\" }),\n 22534: Object.freeze({ value: 22534, enumName: \"Campfire\", displayName: \"Campfire\", category: \"Joker\" }),\n 22535: Object.freeze({ value: 22535, enumName: \"Blueprint\", displayName: \"Blueprint\", category: \"Joker\" }),\n 22536: Object.freeze({ value: 22536, enumName: \"WeeJoker\", displayName: \"Wee Joker\", category: \"Joker\" }),\n 22537: Object.freeze({ value: 22537, enumName: \"HitTheRoad\", displayName: \"Hit the Road\", category: \"Joker\" }),\n 22538: Object.freeze({ value: 22538, enumName: \"TheDuo\", displayName: \"The Duo\", category: \"Joker\" }),\n 22539: Object.freeze({ value: 22539, enumName: \"TheTrio\", displayName: \"The Trio\", category: \"Joker\" }),\n 22540: Object.freeze({ value: 22540, enumName: \"TheFamily\", displayName: \"The Family\", category: \"Joker\" }),\n 22541: Object.freeze({ value: 22541, enumName: \"TheOrder\", displayName: \"The Order\", category: \"Joker\" }),\n 22542: Object.freeze({ value: 22542, enumName: \"TheTribe\", displayName: \"The Tribe\", category: \"Joker\" }),\n 22543: Object.freeze({ value: 22543, enumName: \"Stuntman\", displayName: \"Stuntman\", category: \"Joker\" }),\n 22544: Object.freeze({ value: 22544, enumName: \"InvisibleJoker\", displayName: \"Invisible Joker\", category: \"Joker\" }),\n 22545: Object.freeze({ value: 22545, enumName: \"Brainstorm\", displayName: \"Brainstorm\", category: \"Joker\" }),\n 22546: Object.freeze({ value: 22546, enumName: \"DriversLicense\", displayName: \"Driver\\u0027s License\", category: \"Joker\" }),\n 22547: Object.freeze({ value: 22547, enumName: \"BurntJoker\", displayName: \"Burnt Joker\", category: \"Joker\" }),\n 23552: Object.freeze({ value: 23552, enumName: \"Canio\", displayName: \"Canio\", category: \"Joker\" }),\n 23553: Object.freeze({ value: 23553, enumName: \"Triboulet\", displayName: \"Triboulet\", category: \"Joker\" }),\n 23554: Object.freeze({ value: 23554, enumName: \"Yorick\", displayName: \"Yorick\", category: \"Joker\" }),\n 23555: Object.freeze({ value: 23555, enumName: \"Chicot\", displayName: \"Chicot\", category: \"Joker\" }),\n 23556: Object.freeze({ value: 23556, enumName: \"Perkeo\", displayName: \"Perkeo\", category: \"Joker\" }),\n 61440: Object.freeze({ value: 61440, enumName: \"Invalid\", displayName: \"Invalid\", category: \"Invalid\" }),\n 61441: Object.freeze({ value: 61441, enumName: \"NotImplemented\", displayName: \"Not Implemented\", category: \"Invalid\" }),\n 61442: Object.freeze({ value: 61442, enumName: \"JokerExcludedByStream\", displayName: \"Joker Excluded By Stream\", category: \"Invalid\" }),\n 61443: Object.freeze({ value: 61443, enumName: \"PlanetExcludedByStream\", displayName: \"Planet Excluded By Stream\", category: \"Invalid\" }),\n 61444: Object.freeze({ value: 61444, enumName: \"TarotExcludedByStream\", displayName: \"Tarot Excluded By Stream\", category: \"Invalid\" }),\n 61445: Object.freeze({ value: 61445, enumName: \"SpectralExcludedByStream\", displayName: \"Spectral Excluded By Stream\", category: \"Invalid\" }),\n});\n\nexport const MOTELY_ITEM_FORMATS_BY_ENUM_NAME = Object.freeze({\n AbstractJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20504],\n AceOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4108],\n AceOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4124],\n AceOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4140],\n AceOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4156],\n Acrobat: MOTELY_ITEM_FORMATS_BY_VALUE[21546],\n AncientJoker: MOTELY_ITEM_FORMATS_BY_VALUE[22533],\n Ankh: MOTELY_ITEM_FORMATS_BY_VALUE[8202],\n Arrowhead: MOTELY_ITEM_FORMATS_BY_VALUE[21554],\n Astronomer: MOTELY_ITEM_FORMATS_BY_VALUE[21566],\n Aura: MOTELY_ITEM_FORMATS_BY_VALUE[8196],\n Banner: MOTELY_ITEM_FORMATS_BY_VALUE[20497],\n Baron: MOTELY_ITEM_FORMATS_BY_VALUE[22530],\n BaseballCard: MOTELY_ITEM_FORMATS_BY_VALUE[22532],\n BlackHole: MOTELY_ITEM_FORMATS_BY_VALUE[8209],\n Blackboard: MOTELY_ITEM_FORMATS_BY_VALUE[21517],\n Bloodstone: MOTELY_ITEM_FORMATS_BY_VALUE[21553],\n BlueJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20517],\n Blueprint: MOTELY_ITEM_FORMATS_BY_VALUE[22535],\n Bootstraps: MOTELY_ITEM_FORMATS_BY_VALUE[21567],\n Brainstorm: MOTELY_ITEM_FORMATS_BY_VALUE[22545],\n Bull: MOTELY_ITEM_FORMATS_BY_VALUE[21537],\n Burglar: MOTELY_ITEM_FORMATS_BY_VALUE[21516],\n BurntJoker: MOTELY_ITEM_FORMATS_BY_VALUE[22547],\n BusinessCard: MOTELY_ITEM_FORMATS_BY_VALUE[20510],\n Campfire: MOTELY_ITEM_FORMATS_BY_VALUE[22534],\n Canio: MOTELY_ITEM_FORMATS_BY_VALUE[23552],\n CardSharp: MOTELY_ITEM_FORMATS_BY_VALUE[21521],\n Cartomancer: MOTELY_ITEM_FORMATS_BY_VALUE[21565],\n Castle: MOTELY_ITEM_FORMATS_BY_VALUE[21544],\n Cavendish: MOTELY_ITEM_FORMATS_BY_VALUE[20522],\n CeremonialDagger: MOTELY_ITEM_FORMATS_BY_VALUE[21507],\n Ceres: MOTELY_ITEM_FORMATS_BY_VALUE[16394],\n Certificate: MOTELY_ITEM_FORMATS_BY_VALUE[21549],\n ChaostheClown: MOTELY_ITEM_FORMATS_BY_VALUE[20502],\n Chicot: MOTELY_ITEM_FORMATS_BY_VALUE[23555],\n CleverJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20492],\n Cloud9: MOTELY_ITEM_FORMATS_BY_VALUE[21527],\n Constellation: MOTELY_ITEM_FORMATS_BY_VALUE[21519],\n CraftyJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20494],\n CrazyJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20488],\n CreditCard: MOTELY_ITEM_FORMATS_BY_VALUE[20496],\n Cryptid: MOTELY_ITEM_FORMATS_BY_VALUE[8207],\n DNA: MOTELY_ITEM_FORMATS_BY_VALUE[22528],\n Death: MOTELY_ITEM_FORMATS_BY_VALUE[12301],\n DejaVu: MOTELY_ITEM_FORMATS_BY_VALUE[8203],\n DelayedGratification: MOTELY_ITEM_FORMATS_BY_VALUE[20505],\n DeviousJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20493],\n DietCola: MOTELY_ITEM_FORMATS_BY_VALUE[21538],\n DriversLicense: MOTELY_ITEM_FORMATS_BY_VALUE[22546],\n DrollJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20489],\n Drunkard: MOTELY_ITEM_FORMATS_BY_VALUE[20532],\n Dusk: MOTELY_ITEM_FORMATS_BY_VALUE[21510],\n Earth: MOTELY_ITEM_FORMATS_BY_VALUE[16386],\n Ectoplasm: MOTELY_ITEM_FORMATS_BY_VALUE[8200],\n Egg: MOTELY_ITEM_FORMATS_BY_VALUE[20513],\n EightBall: MOTELY_ITEM_FORMATS_BY_VALUE[20499],\n EightOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4102],\n EightOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4118],\n EightOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4134],\n EightOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4150],\n Eris: MOTELY_ITEM_FORMATS_BY_VALUE[16395],\n Erosion: MOTELY_ITEM_FORMATS_BY_VALUE[21533],\n EvenSteven: MOTELY_ITEM_FORMATS_BY_VALUE[20507],\n FacelessJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20518],\n Familiar: MOTELY_ITEM_FORMATS_BY_VALUE[8192],\n Fibonacci: MOTELY_ITEM_FORMATS_BY_VALUE[21511],\n FiveOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4099],\n FiveOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4115],\n FiveOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4131],\n FiveOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4147],\n FlashCard: MOTELY_ITEM_FORMATS_BY_VALUE[21540],\n FlowerPot: MOTELY_ITEM_FORMATS_BY_VALUE[21558],\n FortuneTeller: MOTELY_ITEM_FORMATS_BY_VALUE[20530],\n FourFingers: MOTELY_ITEM_FORMATS_BY_VALUE[21505],\n FourOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4098],\n FourOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4114],\n FourOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4130],\n FourOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4146],\n GiftCard: MOTELY_ITEM_FORMATS_BY_VALUE[21531],\n GlassJoker: MOTELY_ITEM_FORMATS_BY_VALUE[21556],\n GluttonousJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20484],\n GoldenJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20533],\n GoldenTicket: MOTELY_ITEM_FORMATS_BY_VALUE[20537],\n GreedyJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20481],\n GreenJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20519],\n Grim: MOTELY_ITEM_FORMATS_BY_VALUE[8193],\n GrosMichel: MOTELY_ITEM_FORMATS_BY_VALUE[20506],\n Hack: MOTELY_ITEM_FORMATS_BY_VALUE[21513],\n HalfJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20495],\n Hallucination: MOTELY_ITEM_FORMATS_BY_VALUE[20529],\n HangingChad: MOTELY_ITEM_FORMATS_BY_VALUE[20539],\n Hex: MOTELY_ITEM_FORMATS_BY_VALUE[8204],\n Hiker: MOTELY_ITEM_FORMATS_BY_VALUE[21520],\n HitTheRoad: MOTELY_ITEM_FORMATS_BY_VALUE[22537],\n Hologram: MOTELY_ITEM_FORMATS_BY_VALUE[21526],\n IceCream: MOTELY_ITEM_FORMATS_BY_VALUE[20515],\n Immolate: MOTELY_ITEM_FORMATS_BY_VALUE[8201],\n Incantation: MOTELY_ITEM_FORMATS_BY_VALUE[8194],\n Invalid: MOTELY_ITEM_FORMATS_BY_VALUE[61440],\n InvisibleJoker: MOTELY_ITEM_FORMATS_BY_VALUE[22544],\n JackOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4105],\n JackOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4121],\n JackOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4137],\n JackOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4153],\n Joker: MOTELY_ITEM_FORMATS_BY_VALUE[20480],\n JokerExcludedByStream: MOTELY_ITEM_FORMATS_BY_VALUE[61442],\n JokerStencil: MOTELY_ITEM_FORMATS_BY_VALUE[21504],\n JollyJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20485],\n Judgement: MOTELY_ITEM_FORMATS_BY_VALUE[12308],\n Juggler: MOTELY_ITEM_FORMATS_BY_VALUE[20531],\n Jupiter: MOTELY_ITEM_FORMATS_BY_VALUE[16388],\n Justice: MOTELY_ITEM_FORMATS_BY_VALUE[12296],\n KingOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4107],\n KingOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4123],\n KingOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4139],\n KingOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4155],\n LoyaltyCard: MOTELY_ITEM_FORMATS_BY_VALUE[21509],\n Luchador: MOTELY_ITEM_FORMATS_BY_VALUE[21530],\n LuckyCat: MOTELY_ITEM_FORMATS_BY_VALUE[21536],\n LustyJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20482],\n MadJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20487],\n Madness: MOTELY_ITEM_FORMATS_BY_VALUE[21522],\n MailInRebate: MOTELY_ITEM_FORMATS_BY_VALUE[20528],\n MarbleJoker: MOTELY_ITEM_FORMATS_BY_VALUE[21508],\n Mars: MOTELY_ITEM_FORMATS_BY_VALUE[16387],\n Matador: MOTELY_ITEM_FORMATS_BY_VALUE[21563],\n Medium: MOTELY_ITEM_FORMATS_BY_VALUE[8206],\n Mercury: MOTELY_ITEM_FORMATS_BY_VALUE[16384],\n MerryAndy: MOTELY_ITEM_FORMATS_BY_VALUE[21559],\n MidasMask: MOTELY_ITEM_FORMATS_BY_VALUE[21529],\n Mime: MOTELY_ITEM_FORMATS_BY_VALUE[21506],\n Misprint: MOTELY_ITEM_FORMATS_BY_VALUE[20500],\n MrBones: MOTELY_ITEM_FORMATS_BY_VALUE[21545],\n MysticSummit: MOTELY_ITEM_FORMATS_BY_VALUE[20498],\n Neptune: MOTELY_ITEM_FORMATS_BY_VALUE[16391],\n NineOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4103],\n NineOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4119],\n NineOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4135],\n NineOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4151],\n NotImplemented: MOTELY_ITEM_FORMATS_BY_VALUE[61441],\n Obelisk: MOTELY_ITEM_FORMATS_BY_VALUE[22531],\n OddTodd: MOTELY_ITEM_FORMATS_BY_VALUE[20508],\n OnyxAgate: MOTELY_ITEM_FORMATS_BY_VALUE[21555],\n OopsAll6s: MOTELY_ITEM_FORMATS_BY_VALUE[21560],\n Ouija: MOTELY_ITEM_FORMATS_BY_VALUE[8199],\n Pareidolia: MOTELY_ITEM_FORMATS_BY_VALUE[21514],\n Perkeo: MOTELY_ITEM_FORMATS_BY_VALUE[23556],\n Photograph: MOTELY_ITEM_FORMATS_BY_VALUE[20526],\n PlanetExcludedByStream: MOTELY_ITEM_FORMATS_BY_VALUE[61443],\n PlanetX: MOTELY_ITEM_FORMATS_BY_VALUE[16393],\n Pluto: MOTELY_ITEM_FORMATS_BY_VALUE[16392],\n Popcorn: MOTELY_ITEM_FORMATS_BY_VALUE[20534],\n QueenOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4106],\n QueenOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4122],\n QueenOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4138],\n QueenOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4154],\n RaisedFist: MOTELY_ITEM_FORMATS_BY_VALUE[20501],\n Ramen: MOTELY_ITEM_FORMATS_BY_VALUE[21542],\n RedCard: MOTELY_ITEM_FORMATS_BY_VALUE[20523],\n ReservedParking: MOTELY_ITEM_FORMATS_BY_VALUE[20527],\n RideTheBus: MOTELY_ITEM_FORMATS_BY_VALUE[20512],\n RiffRaff: MOTELY_ITEM_FORMATS_BY_VALUE[20525],\n Rocket: MOTELY_ITEM_FORMATS_BY_VALUE[21528],\n RoughGem: MOTELY_ITEM_FORMATS_BY_VALUE[21552],\n Runner: MOTELY_ITEM_FORMATS_BY_VALUE[20514],\n Satellite: MOTELY_ITEM_FORMATS_BY_VALUE[21564],\n Saturn: MOTELY_ITEM_FORMATS_BY_VALUE[16389],\n ScaryFace: MOTELY_ITEM_FORMATS_BY_VALUE[20503],\n Scholar: MOTELY_ITEM_FORMATS_BY_VALUE[20509],\n Seance: MOTELY_ITEM_FORMATS_BY_VALUE[21523],\n SeeingDouble: MOTELY_ITEM_FORMATS_BY_VALUE[21562],\n Seltzer: MOTELY_ITEM_FORMATS_BY_VALUE[21543],\n SevenOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4101],\n SevenOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4117],\n SevenOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4133],\n SevenOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4149],\n ShootTheMoon: MOTELY_ITEM_FORMATS_BY_VALUE[20540],\n Shortcut: MOTELY_ITEM_FORMATS_BY_VALUE[21525],\n Showman: MOTELY_ITEM_FORMATS_BY_VALUE[21557],\n Sigil: MOTELY_ITEM_FORMATS_BY_VALUE[8198],\n SixOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4100],\n SixOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4116],\n SixOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4132],\n SixOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4148],\n SixthSense: MOTELY_ITEM_FORMATS_BY_VALUE[21518],\n SlyJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20490],\n SmearedJoker: MOTELY_ITEM_FORMATS_BY_VALUE[21550],\n SmileyFace: MOTELY_ITEM_FORMATS_BY_VALUE[20536],\n SockAndBuskin: MOTELY_ITEM_FORMATS_BY_VALUE[21547],\n SpaceJoker: MOTELY_ITEM_FORMATS_BY_VALUE[21515],\n SpareTrousers: MOTELY_ITEM_FORMATS_BY_VALUE[21541],\n SpectralExcludedByStream: MOTELY_ITEM_FORMATS_BY_VALUE[61445],\n Splash: MOTELY_ITEM_FORMATS_BY_VALUE[20516],\n SquareJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20524],\n SteelJoker: MOTELY_ITEM_FORMATS_BY_VALUE[21512],\n StoneJoker: MOTELY_ITEM_FORMATS_BY_VALUE[21535],\n Strength: MOTELY_ITEM_FORMATS_BY_VALUE[12299],\n Stuntman: MOTELY_ITEM_FORMATS_BY_VALUE[22543],\n Supernova: MOTELY_ITEM_FORMATS_BY_VALUE[20511],\n Superposition: MOTELY_ITEM_FORMATS_BY_VALUE[20520],\n Swashbuckler: MOTELY_ITEM_FORMATS_BY_VALUE[20538],\n Talisman: MOTELY_ITEM_FORMATS_BY_VALUE[8195],\n TarotExcludedByStream: MOTELY_ITEM_FORMATS_BY_VALUE[61444],\n Temperance: MOTELY_ITEM_FORMATS_BY_VALUE[12302],\n TenOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4104],\n TenOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4120],\n TenOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4136],\n TenOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4152],\n TheChariot: MOTELY_ITEM_FORMATS_BY_VALUE[12295],\n TheDevil: MOTELY_ITEM_FORMATS_BY_VALUE[12303],\n TheDuo: MOTELY_ITEM_FORMATS_BY_VALUE[22538],\n TheEmperor: MOTELY_ITEM_FORMATS_BY_VALUE[12292],\n TheEmpress: MOTELY_ITEM_FORMATS_BY_VALUE[12291],\n TheFamily: MOTELY_ITEM_FORMATS_BY_VALUE[22540],\n TheFool: MOTELY_ITEM_FORMATS_BY_VALUE[12288],\n TheHangedMan: MOTELY_ITEM_FORMATS_BY_VALUE[12300],\n TheHermit: MOTELY_ITEM_FORMATS_BY_VALUE[12297],\n TheHierophant: MOTELY_ITEM_FORMATS_BY_VALUE[12293],\n TheHighPriestess: MOTELY_ITEM_FORMATS_BY_VALUE[12290],\n TheIdol: MOTELY_ITEM_FORMATS_BY_VALUE[21561],\n TheLovers: MOTELY_ITEM_FORMATS_BY_VALUE[12294],\n TheMagician: MOTELY_ITEM_FORMATS_BY_VALUE[12289],\n TheMoon: MOTELY_ITEM_FORMATS_BY_VALUE[12306],\n TheOrder: MOTELY_ITEM_FORMATS_BY_VALUE[22541],\n TheSoul: MOTELY_ITEM_FORMATS_BY_VALUE[8208],\n TheStar: MOTELY_ITEM_FORMATS_BY_VALUE[12305],\n TheSun: MOTELY_ITEM_FORMATS_BY_VALUE[12307],\n TheTower: MOTELY_ITEM_FORMATS_BY_VALUE[12304],\n TheTribe: MOTELY_ITEM_FORMATS_BY_VALUE[22542],\n TheTrio: MOTELY_ITEM_FORMATS_BY_VALUE[22539],\n TheWheelOfFortune: MOTELY_ITEM_FORMATS_BY_VALUE[12298],\n TheWorld: MOTELY_ITEM_FORMATS_BY_VALUE[12309],\n ThreeOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4097],\n ThreeOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4113],\n ThreeOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4129],\n ThreeOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4145],\n Throwback: MOTELY_ITEM_FORMATS_BY_VALUE[21551],\n ToDoList: MOTELY_ITEM_FORMATS_BY_VALUE[20521],\n ToTheMoon: MOTELY_ITEM_FORMATS_BY_VALUE[21534],\n TradingCard: MOTELY_ITEM_FORMATS_BY_VALUE[21539],\n Trance: MOTELY_ITEM_FORMATS_BY_VALUE[8205],\n Triboulet: MOTELY_ITEM_FORMATS_BY_VALUE[23553],\n Troubadour: MOTELY_ITEM_FORMATS_BY_VALUE[21548],\n TurtleBean: MOTELY_ITEM_FORMATS_BY_VALUE[21532],\n TwoOfClubs: MOTELY_ITEM_FORMATS_BY_VALUE[4096],\n TwoOfDiamonds: MOTELY_ITEM_FORMATS_BY_VALUE[4112],\n TwoOfHearts: MOTELY_ITEM_FORMATS_BY_VALUE[4128],\n TwoOfSpades: MOTELY_ITEM_FORMATS_BY_VALUE[4144],\n Uranus: MOTELY_ITEM_FORMATS_BY_VALUE[16390],\n Vagabond: MOTELY_ITEM_FORMATS_BY_VALUE[22529],\n Vampire: MOTELY_ITEM_FORMATS_BY_VALUE[21524],\n Venus: MOTELY_ITEM_FORMATS_BY_VALUE[16385],\n WalkieTalkie: MOTELY_ITEM_FORMATS_BY_VALUE[20535],\n WeeJoker: MOTELY_ITEM_FORMATS_BY_VALUE[22536],\n WilyJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20491],\n Wraith: MOTELY_ITEM_FORMATS_BY_VALUE[8197],\n WrathfulJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20483],\n Yorick: MOTELY_ITEM_FORMATS_BY_VALUE[23554],\n ZanyJoker: MOTELY_ITEM_FORMATS_BY_VALUE[20486],\n});\n","import { MOTELY_ITEM_FORMATS_BY_VALUE } from \"./motelyItemFormats.js\";\n\ntype MotelyItemCategoryName = \"Standardcard\" | \"SpectralCard\" | \"TarotCard\" | \"PlanetCard\" | \"Joker\" | \"Invalid\";\n\nconst CATEGORY_MAP: Record<MotelyItemCategoryName, MotelyRenderableCategory> = {\n Standardcard: \"playing\",\n SpectralCard: \"spectral\",\n TarotCard: \"tarot\",\n PlanetCard: \"planet\",\n Joker: \"joker\",\n Invalid: \"unknown\",\n};\n\nconst RANKS = [\"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"Jack\", \"Queen\", \"King\", \"Ace\"] as const;\nconst SUITS = [\"Clubs\", \"Diamonds\", \"Hearts\", \"Spades\"] as const;\nconst EDITIONS = [\"Base\", \"Foil\", \"Holographic\", \"Polychrome\", \"Negative\"] as const;\nconst SEALS = [\"None\", \"Gold\", \"Red\", \"Blue\", \"Purple\"] as const;\n\ntype RankName = (typeof RANKS)[number];\ntype SuitName = (typeof SUITS)[number];\n\nexport type CardCategory = \"joker\" | \"consumable\" | \"playing\" | \"spectral\" | \"tarot\" | \"planet\";\nexport type MotelyRenderableCategory = CardCategory | \"unknown\";\n\nexport type MotelyItemInput = number | MotelyRuntimeItem | null | undefined;\n\nexport interface MotelyRuntimeItem {\n type?: number;\n value?: number;\n edition?: number;\n seal?: number;\n enhancement?: number;\n suit?: number;\n rank?: number;\n}\n\nexport interface DecodedMotelyItem {\n itemType: number;\n enumKey: string;\n displayName: string;\n category: MotelyRenderableCategory;\n edition: \"Foil\" | \"Holographic\" | \"Polychrome\" | \"Negative\" | null;\n seal: \"Gold\" | \"Red\" | \"Blue\" | \"Purple\" | null;\n enhancement: string | null;\n rank: string | null;\n suit: \"Clubs\" | \"Diamonds\" | \"Hearts\" | \"Spades\" | null;\n}\n\nexport interface MotelyJamlCard {\n type: \"joker\" | \"consumable\" | \"playing\";\n card: {\n name: string;\n edition?: \"Foil\" | \"Holographic\" | \"Polychrome\" | \"Negative\";\n seal?: string;\n enhancements?: string[];\n rank?: string;\n suit?: string;\n scale?: number;\n };\n}\n\nfunction itemFormat(itemType: number) {\n return MOTELY_ITEM_FORMATS_BY_VALUE[itemType as keyof typeof MOTELY_ITEM_FORMATS_BY_VALUE];\n}\n\nfunction spaceSplit(value: string): string {\n return value.replace(/([a-z])([A-Z])/g, \"$1 $2\").replace(/([A-Z]+)([A-Z][a-z])/g, \"$1 $2\");\n}\n\nfunction resolvePackedValue(input: MotelyItemInput): number | null {\n if (input == null) return null;\n if (typeof input === \"number\") return Number.isFinite(input) ? input : null;\n return input.value ?? input.type ?? null;\n}\n\nexport function resolveMotelyItemType(input: MotelyItemInput): number | null {\n const val = resolvePackedValue(input);\n return val !== null ? val & 0xffff : null;\n}\n\nexport function motelyItemTypeName(input: MotelyItemInput): string {\n const itemType = resolveMotelyItemType(input);\n if (itemType === null) return \"Unknown\";\n return itemFormat(itemType)?.enumName ?? `item#${itemType}`;\n}\n\nexport function motelyItemCategory(itemType: number): MotelyRenderableCategory {\n const category = itemFormat(itemType)?.category as MotelyItemCategoryName | undefined;\n return category ? CATEGORY_MAP[category] ?? \"unknown\" : \"unknown\";\n}\n\nexport function motelyItemRenderCategory(input: MotelyItemInput): MotelyRenderableCategory {\n const itemType = resolveMotelyItemType(input);\n if (itemType === null) return \"unknown\";\n return motelyItemCategory(itemType);\n}\n\nexport function motelyItemDisplayName(input: MotelyItemInput): string {\n const itemType = resolveMotelyItemType(input);\n if (itemType === null) return \"Unknown\";\n return itemFormat(itemType)?.displayName ?? spaceSplit(motelyItemTypeName(input));\n}\n\nexport function motelyItemEditionName(input: MotelyItemInput): \"Foil\" | \"Holographic\" | \"Polychrome\" | \"Negative\" | null {\n if (input == null) return null;\n const val = typeof input === \"number\" ? input : input.edition;\n if (val == null) return null;\n const key = EDITIONS[val as keyof typeof EDITIONS];\n if (!key || key === \"Base\") return null;\n return key as \"Foil\" | \"Holographic\" | \"Polychrome\" | \"Negative\";\n}\n\nexport function motelyItemSealName(input: MotelyItemInput): \"Gold\" | \"Red\" | \"Blue\" | \"Purple\" | null {\n if (input == null) return null;\n const val = typeof input === \"number\" ? null : input.seal;\n if (val == null) return null;\n const key = SEALS[val as keyof typeof SEALS];\n if (!key || key === \"None\") return null;\n return key as \"Gold\" | \"Red\" | \"Blue\" | \"Purple\";\n}\n\nexport function motelyItemEnhancementName(input: MotelyItemInput): string | null {\n if (input == null) return null;\n const val = typeof input === \"number\" ? null : input.enhancement;\n if (val == null) return null;\n // Enhancements are not part of the current motely-wasm JS contract.\n return null;\n}\n\nexport function motelyStandardcardRankName(input: MotelyItemInput): string | null {\n if (input == null) return null;\n if (motelyItemRenderCategory(input) !== \"playing\") return null;\n const val = typeof input === \"number\" ? resolveMotelyItemType(input) : input.rank;\n if (val == null) return null;\n if (typeof input === \"number\") return RANKS[val & 0xf] ?? null;\n return RANKS[val] as RankName | undefined ?? null;\n}\n\nexport function motelyStandardcardSuitName(input: MotelyItemInput): \"Clubs\" | \"Diamonds\" | \"Hearts\" | \"Spades\" | null {\n if (input == null) return null;\n if (motelyItemRenderCategory(input) !== \"playing\") return null;\n const val = typeof input === \"number\" ? resolveMotelyItemType(input) : input.suit;\n if (val == null) return null;\n if (typeof input === \"number\") return SUITS[(val >> 4) & 0xf] ?? null;\n return SUITS[val] as SuitName | undefined ?? null;\n}\n\nexport function decodeMotelyItemName(input: MotelyItemInput): string {\n return motelyItemTypeName(input);\n}\n\nexport function decodeMotelyItem(input: MotelyItemInput): DecodedMotelyItem | null {\n const itemType = resolveMotelyItemType(input);\n if (itemType === null) return null;\n\n const format = itemFormat(itemType);\n const enumKeyStr = format?.enumName ?? `Unknown_${itemType}`;\n const category = motelyItemCategory(itemType);\n const displayName = format?.displayName ?? spaceSplit(enumKeyStr);\n\n return {\n itemType,\n enumKey: enumKeyStr,\n displayName,\n category,\n edition: motelyItemEditionName(input),\n seal: motelyItemSealName(input),\n enhancement: motelyItemEnhancementName(input),\n rank: motelyStandardcardRankName(input),\n suit: motelyStandardcardSuitName(input),\n };\n}\n\nexport function decodeMotelyItemToJamlCard(input: MotelyItemInput, scale?: number): MotelyJamlCard | null {\n const decoded = decodeMotelyItem(input);\n if (!decoded) return null;\n\n const type: \"joker\" | \"consumable\" | \"playing\" =\n decoded.category === \"joker\" ? \"joker\"\n : decoded.category === \"playing\" ? \"playing\"\n : \"consumable\";\n\n return {\n type,\n card: {\n name: decoded.displayName,\n edition: decoded.edition ?? undefined,\n seal: decoded.seal ?? undefined,\n enhancements: decoded.enhancement ? [decoded.enhancement] : undefined,\n rank: decoded.rank ?? undefined,\n suit: decoded.suit ?? undefined,\n scale,\n },\n };\n}\n\nexport function warmMotelyItemCache(): void { /* no-op */ }\nexport function motelyItemCacheSize(): number { return 0; }\n","import { decodeMotelyItem, type MotelyRenderableCategory } from \"./motelyItemDecoder.js\";\r\nimport { getSpriteData, SHEET_META } from \"../sprites/spriteMapper.js\";\r\nimport { RANK_MAP, SUIT_MAP } from \"../sprites/spriteData.js\";\r\nimport { resolveJamlAssetUrl } from \"../assets.js\";\r\n\r\nexport interface MotelySpriteData {\r\n atlasPath: string;\r\n gridCol: number;\r\n gridRow: number;\r\n gridCols: number;\r\n gridRows: number;\r\n displayName: string;\r\n category: MotelyRenderableCategory;\r\n}\r\n\r\n/**\r\n * Given a raw motely-wasm item value (which may be a bitpacked integer or raw MotelyItemType),\r\n * resolves it to a sprite atlas path and grid coordinates for rendering.\r\n */\r\nexport function motelyItemToSprite(rawValue: number): MotelySpriteData | null {\r\n const decoded = decodeMotelyItem(rawValue);\r\n if (!decoded) return null;\r\n\r\n if (decoded.category === \"playing\" && decoded.rank && decoded.suit) {\r\n const col = RANK_MAP[decoded.rank];\r\n const row = SUIT_MAP[decoded.suit];\r\n if (col !== undefined && row !== undefined) {\r\n return {\r\n atlasPath: resolveJamlAssetUrl('deck'),\r\n gridCol: col,\r\n gridRow: row,\r\n gridCols: 13,\r\n gridRows: 4,\r\n displayName: decoded.displayName,\r\n category: \"playing\"\r\n };\r\n }\r\n }\r\n\r\n const sprite = getSpriteData(decoded.displayName);\r\n if (!sprite) return null;\r\n\r\n const meta = SHEET_META[sprite.type];\r\n if (!meta) return null;\r\n\r\n return {\r\n atlasPath: resolveJamlAssetUrl(meta.assetKey),\r\n gridCol: sprite.pos.x,\r\n gridRow: sprite.pos.y,\r\n gridCols: meta.cols,\r\n gridRows: meta.rows,\r\n displayName: decoded.displayName,\r\n category: decoded.category\r\n };\r\n}\r\n\r\n/**\r\n * Resolves a sprite by name and category without needing a Motely integer.\r\n */\r\nexport function getMotelySpriteByName(name: string, category: MotelyRenderableCategory = \"unknown\"): MotelySpriteData | null {\r\n if (category === \"playing\") {\r\n // Attempt to parse \"Rank of Suit\"\r\n const match = /^(.*?)\\s+of\\s+(.*?)$/i.exec(name);\r\n if (match) {\r\n const rank = match[1];\r\n const suit = match[2];\r\n const col = RANK_MAP[rank];\r\n const row = SUIT_MAP[suit];\r\n if (col !== undefined && row !== undefined) {\r\n return {\r\n atlasPath: resolveJamlAssetUrl('deck'),\r\n gridCol: col,\r\n gridRow: row,\r\n gridCols: 13,\r\n gridRows: 4,\r\n displayName: name,\r\n category: \"playing\"\r\n };\r\n }\r\n }\r\n }\r\n\r\n const sprite = getSpriteData(name);\r\n if (!sprite) return null;\r\n\r\n const meta = SHEET_META[sprite.type];\r\n if (!meta) return null;\r\n\r\n return {\r\n atlasPath: resolveJamlAssetUrl(meta.assetKey),\r\n gridCol: sprite.pos.x,\r\n gridRow: sprite.pos.y,\r\n gridCols: meta.cols,\r\n gridRows: meta.rows,\r\n displayName: name,\r\n category\r\n };\r\n}\r\n","import { Motely } from \"motely-wasm\";\nimport { MOTELY_ITEM_FORMATS_BY_VALUE } from \"./decode/motelyItemFormats.js\";\n\ntype RuntimeEnum = Record<string, string | number>;\ntype MotelyRuntimeEnums = typeof Motely & Record<string, RuntimeEnum>;\n\nconst MotelyEnums = Motely as MotelyRuntimeEnums;\n\nfunction runtimeEnumKey(\n enumObject: Record<string, unknown>,\n value: number,\n): string | null {\n const key = enumObject[String(value)];\n return typeof key === \"string\" && key.length > 0 ? key : null;\n}\n\nexport function motelyBossDisplayName(value: number): string {\n const key = runtimeEnumKey(MotelyEnums.MotelyBossBlind, value & 0xff);\n return key ?? `boss#${value}`;\n}\n\nexport function motelyBossDisplayNameFromKey(key: string): string {\n return key;\n}\n\nexport function motelyVoucherDisplayName(value: number): string {\n const key = runtimeEnumKey(MotelyEnums.MotelyVoucher, value);\n return key ?? `voucher#${value}`;\n}\n\nexport function motelyVoucherDisplayNameFromKey(key: string): string {\n return key;\n}\n\nexport function motelyTagDisplayName(value: number): string {\n const key = runtimeEnumKey(MotelyEnums.MotelyTag, value);\n return key ?? `tag#${value}`;\n}\n\nexport function motelyTagDisplayNameFromKey(key: string): string {\n return key;\n}\n\nexport function motelyBoosterPackDisplayName(value: number): string {\n const key = runtimeEnumKey(MotelyEnums.MotelyBoosterPack, value);\n return key ?? `pack#${value}`;\n}\n\nexport function motelyBoosterPackDisplayNameFromKey(key: string): string {\n return `${key} Pack`;\n}\n\nexport function motelyItemDisplayNameFromKey(key: string): string {\n return key;\n}\n\nexport function motelyItemDisplayNameFromValue(value: number): string {\n const itemType = value & 0xffff;\n return MOTELY_ITEM_FORMATS_BY_VALUE[itemType as keyof typeof MOTELY_ITEM_FORMATS_BY_VALUE]?.displayName ?? `item#${value}`;\n}\n","\"use client\";\n\nimport { useCallback, useState } from \"react\";\nimport { Motely } from \"motely-wasm\";\nimport { ensureMotelyReady } from \"../lib/motely/runtime.js\";\nimport { IFileMounter, PermissionMode } from \"motely-wasm/bootsharp/file-system\";\n\ntype FileSystemPackage = typeof import(\"@rewaffle/bootsharp-file-system\");\n\nlet fileSystemPackage: FileSystemPackage | null = null;\nlet fileSystemInitError: unknown = null;\n\ntry {\n fileSystemPackage = await import(\"@rewaffle/bootsharp-file-system\");\n fileSystemPackage.init(IFileMounter);\n} catch (error) {\n fileSystemInitError = error;\n}\n\nexport type JamlLibraryStatus = \"idle\" | \"unsupported\" | \"mounting\" | \"ready\" | \"error\";\n\nexport interface UseJamlLibraryState {\n status: JamlLibraryStatus;\n rootId: string | null;\n files: string[];\n error: string | null;\n mount: () => Promise<void>;\n unmount: () => Promise<void>;\n loadFile: (uri: string) => Promise<string>;\n saveFile: (uri: string, content: string) => Promise<void>;\n refresh: () => void;\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\n\nexport function useJamlLibrary(): UseJamlLibraryState {\n const isFileSystemReady = fileSystemPackage !== null;\n const [status, setStatus] = useState<JamlLibraryStatus>(() => isFileSystemReady ? \"idle\" : \"unsupported\");\n const [rootId, setRootId] = useState<string | null>(null);\n const [files, setFiles] = useState<string[]>([]);\n const [error, setError] = useState<string | null>(() =>\n isFileSystemReady ? null : errorMessage(fileSystemInitError ?? \"Bootsharp FileSystem package is not available.\"),\n );\n\n const refresh = useCallback(() => {\n if (!rootId) return;\n setFiles((prev) => [...prev]);\n }, [rootId]);\n\n const mount = useCallback(async () => {\n if (!isFileSystemReady) {\n setStatus(\"unsupported\");\n setError(errorMessage(fileSystemInitError ?? \"Bootsharp FileSystem package is not available.\"));\n return;\n }\n\n setStatus(\"mounting\");\n setError(null);\n\n try {\n await ensureMotelyReady();\n const pickedRoot = await Motely.pickRoot({ mode: PermissionMode.ReadWrite, id: \"jaml-library\" });\n if (!pickedRoot) {\n setStatus(\"idle\");\n return;\n }\n\n const mountedRoot = await Motely.mountRoot(pickedRoot, { mode: PermissionMode.ReadWrite });\n setRootId(mountedRoot);\n setFiles([]);\n setStatus(\"ready\");\n } catch (err) {\n setStatus(\"error\");\n setError(errorMessage(err));\n }\n }, [isFileSystemReady]);\n\n const unmount = useCallback(async () => {\n if (!rootId) return;\n await ensureMotelyReady();\n await Motely.unmountRoot(rootId);\n setRootId(null);\n setFiles([]);\n setStatus(isFileSystemReady ? \"idle\" : \"unsupported\");\n }, [isFileSystemReady, rootId]);\n\n const loadFile = useCallback(async (uri: string) => {\n if (!rootId) throw new Error(\"JAML library is not mounted.\");\n await ensureMotelyReady();\n return await Motely.readTextFile(rootId, uri);\n }, [rootId]);\n\n const saveFile = useCallback(async (uri: string, content: string) => {\n if (!rootId) throw new Error(\"JAML library is not mounted.\");\n await ensureMotelyReady();\n await Motely.writeTextFile(rootId, uri, content);\n setFiles((prev) => (prev.includes(uri) ? prev : [...prev, uri]).sort((a, b) => a.localeCompare(b)));\n }, [rootId]);\n\n return { status, rootId, files, error, mount, unmount, loadFile, saveFile, refresh };\n}\n","\"use client\";\n\nimport { createContext, useContext, useEffect, useState, type ReactNode } from \"react\";\nimport bootsharp from \"motely-wasm\";\nimport { ensureMotelyReady, type MotelyRuntimeStatus } from \"../lib/motely/runtime.js\";\n\nexport interface MotelyContextValue {\n status: MotelyRuntimeStatus;\n error: string | null;\n}\n\nexport const MotelyContext = createContext<MotelyContextValue | null>(null);\n\nfunction currentStatus(): MotelyRuntimeStatus {\n switch (bootsharp.getStatus()) {\n case bootsharp.BootStatus.Booted: return \"ready\";\n case bootsharp.BootStatus.Booting: return \"booting\";\n default: return \"idle\";\n }\n}\n\nexport function MotelyProvider({ children }: { children: ReactNode }) {\n const [status, setStatus] = useState<MotelyRuntimeStatus>(() => {\n const s = currentStatus();\n return s === \"idle\" ? \"booting\" : s;\n });\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (status === \"ready\") return;\n ensureMotelyReady()\n .then(() => setStatus(\"ready\"))\n .catch((err) => {\n setStatus(\"error\");\n setError(err instanceof Error ? err.message : String(err));\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <MotelyContext.Provider value={{ status, error }}>\n {children}\n </MotelyContext.Provider>\n );\n}\n\nexport function useMotelyContext(): MotelyContextValue | null {\n return useContext(MotelyContext);\n}\n","\"use client\";\n\nimport { useCallback, useMemo, useState } from \"react\";\nimport bootsharp from \"motely-wasm\";\nimport { ensureMotelyReady, type MotelyRuntimeStatus } from \"../lib/motely/runtime.js\";\nimport { useMotelyContext } from \"../providers/MotelyProvider.js\";\n\nexport type { MotelyRuntimeStatus };\n\nexport interface UseMotelyRuntimeState {\n status: MotelyRuntimeStatus;\n ready: boolean;\n error: string | null;\n fsReady: boolean;\n fsError: string | null;\n ensureReady: () => Promise<void>;\n}\n\nfunction currentStatus(): MotelyRuntimeStatus {\n switch (bootsharp.getStatus()) {\n case bootsharp.BootStatus.Booted: return \"ready\";\n case bootsharp.BootStatus.Booting: return \"booting\";\n default: return \"idle\";\n }\n}\n\nexport function useMotelyRuntime(): UseMotelyRuntimeState {\n const ctx = useMotelyContext();\n const [localStatus, setLocalStatus] = useState<MotelyRuntimeStatus>(currentStatus);\n const [localError, setLocalError] = useState<string | null>(null);\n\n const status = ctx?.status ?? localStatus;\n const error = ctx?.error ?? localError;\n\n const ensureReady = useCallback(async () => {\n try {\n if (!ctx) {\n setLocalStatus(currentStatus());\n if (bootsharp.getStatus() === bootsharp.BootStatus.Standby) {\n setLocalStatus(\"booting\");\n await ensureMotelyReady();\n }\n setLocalStatus(currentStatus());\n } else {\n await ensureMotelyReady();\n }\n } catch (err) {\n if (!ctx) {\n setLocalStatus(\"error\");\n setLocalError(err instanceof Error ? err.message : String(err));\n }\n throw err;\n }\n }, [ctx]);\n\n return useMemo(\n () => ({\n status,\n ready: status === \"ready\",\n error,\n fsReady: false,\n fsError: null,\n ensureReady,\n }),\n [error, ensureReady, status],\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { MotelyRuntimeStatus } from '../lib/motely/runtime.js';
3
+ export interface MotelyContextValue {
4
+ status: MotelyRuntimeStatus;
5
+ error: string | null;
6
+ }
7
+ export declare const MotelyContext: import('react').Context<MotelyContextValue | null>;
8
+ export declare function MotelyProvider({ children }: {
9
+ children: ReactNode;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ export declare function useMotelyContext(): MotelyContextValue | null;
package/dist/r3f.js CHANGED
@@ -1,5 +1,5 @@
1
- import { n as e } from "./chunks/assets-RWUiFSTc.js";
2
- import { n as t } from "./chunks/tokens-B65Fzble.js";
1
+ import { n as e } from "./chunks/tokens-Qrhlekc4.js";
2
+ import { n as t } from "./chunks/assets-D80i9sMq.js";
3
3
  import { memo as n, useMemo as r, useRef as i, useState as a } from "react";
4
4
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
5
  import { useFrame as c, useLoader as l } from "@react-three/fiber";
@@ -212,7 +212,7 @@ function b({ sprite: e, width: t = 3.4, height: n = 4.5, yLockOnly: i = !1, posi
212
212
  }
213
213
  //#endregion
214
214
  //#region src/r3f/JimboText3D.tsx
215
- function x({ children: n, color: r = t.WHITE, outlineColor: i = t.BLACK, outlineWidth: a = .05, position: s = [
215
+ function x({ children: n, color: r = e.WHITE, outlineColor: i = e.BLACK, outlineWidth: a = .05, position: s = [
216
216
  0,
217
217
  0,
218
218
  0
@@ -223,7 +223,7 @@ function x({ children: n, color: r = t.WHITE, outlineColor: i = t.BLACK, outline
223
223
  color: r,
224
224
  outlineColor: i,
225
225
  outlineWidth: a,
226
- font: e("font"),
226
+ font: t("font"),
227
227
  anchorX: "center",
228
228
  anchorY: "middle",
229
229
  children: n
@@ -1,13 +1,12 @@
1
1
  import { default as React } from 'react';
2
2
  export type JimboBadgeTone = 'dark' | 'blue' | 'red' | 'green' | 'gold' | 'grey' | 'orange' | 'purple';
3
- export interface JimboBadgeProps {
3
+ export interface JimboBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
4
4
  size?: 'sm' | 'md';
5
5
  tone?: JimboBadgeTone;
6
6
  children: React.ReactNode;
7
- className?: string;
8
7
  }
9
8
  /**
10
9
  * Small colored label pill. Matches Balatro's in-game tag/rarity badges.
11
10
  * All styling via jimbo.css `.j-badge` classes.
12
11
  */
13
- export declare function JimboBadge({ size, tone, className, children }: JimboBadgeProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function JimboBadge({ size, tone, className, children, ...props }: JimboBadgeProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ export interface JimboTextInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
+ invalid?: boolean;
4
+ }
5
+ export declare const JimboTextInput: React.ForwardRefExoticComponent<JimboTextInputProps & React.RefAttributes<HTMLInputElement>>;
@@ -1,7 +1,8 @@
1
1
  export interface PanelSplitterProps {
2
2
  "aria-label"?: string;
3
+ className?: string;
3
4
  onDrag: (delta: number) => void;
4
5
  onKeyAdjust?: (delta: number) => void;
5
6
  orientation?: "vertical" | "horizontal";
6
7
  }
7
- export declare function PanelSplitter({ orientation, onDrag, onKeyAdjust, "aria-label": ariaLabel, }: PanelSplitterProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function PanelSplitter({ orientation, onDrag, onKeyAdjust, className, "aria-label": ariaLabel, }: PanelSplitterProps): import("react/jsx-runtime").JSX.Element;
@@ -59,7 +59,6 @@ export declare function useJamlCardRenderer({ layers, invert, hoverTilt, }: {
59
59
  };
60
60
  /**
61
61
  * Tracks which 'ante' section is currently most visible in a scrollable container.
62
- * Used in JamlAnalyzerFullscreen and AnalyzerExplorer.
63
62
  */
64
63
  export declare function useAnteTracker(antes: {
65
64
  ante: number;
package/dist/ui/jimbo.css CHANGED
@@ -1,2 +1,2 @@
1
- @font-face{font-family:m6x11plus;src:url(/fonts/m6x11plus.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:m6x11;src:url(/fonts/m6x11plus.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}*{scrollbar-width:none!important;-ms-overflow-style:none!important}::-webkit-scrollbar{display:none!important}:root{--j-red:#fe5148;--j-blue:#0093ff;--j-green:#429f79;--j-orange:#ff9800;--j-gold:#e4b643;--j-purple:#9e74ce;--j-dark-red:#a02721;--j-dark-blue:#0057a1;--j-dark-orange:#a05b00;--j-dark-green:#215f46;--j-dark-purple:#5e437e;--j-dark-grey:#3a5055;--j-darkest:#1e2b2d;--j-grey:#708386;--j-teal-grey:#404c4e;--j-panel-edge:#1e2e32;--j-inner-border:#334461;--j-border-silver:#b9c2d2;--j-border-south:#777e89;--j-gold-text:#e4b643;--j-green-text:#35bd86;--j-orange-text:#ff8f00;--j-white:#fff;--j-black:#000;--j-tarot-btn:#9e74ce;--j-planet-btn:#00a7ca;--j-spectral-btn:#2e76fd;--j-tarot-btn-dark:#5e437e;--j-planet-btn-dark:#00657c;--j-spectral-btn-dark:#14449e;--j-font:"m6x11plus", "m6x11", monospace;--j-font-code:"JetBrains Mono", "Cascadia Code", "Fira Code", "SF Mono", SFMono-Regular, Menlo, Consolas, ui-monospace, "Courier New", monospace;--j-text-shadow:1px 1px 0 #000c;--j-space-xs:2px;--j-space-sm:4px;--j-space-md:8px;--j-space-lg:12px;--j-space-xl:16px;--j-radius-sm:4px;--j-radius-md:6px;--j-radius-lg:8px;--j-radius-pill:10px;--j-ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--j-press-y:3px;--j-press-speed:55ms;--j-panel-border-width:4px;--j-panel-border-width-heavy:6px;--j-surface-shadow-depth:4px;--j-idle-sheen-duration:5.6s;--j-idle-bob-duration:3.4s}.j-text{font-family:var(--j-font);text-shadow:var(--j-text-shadow);color:var(--j-white);font-weight:400;line-height:1.2}.j-text--no-shadow{text-shadow:none}.j-text--upper{letter-spacing:.08em}.j-text--dance-container{white-space:pre-wrap;display:inline-block}@keyframes j-font-dance{0%{transform:translateY(0)}25%{transform:translateY(-1px)}50%{transform:translateY(0)}75%{transform:translateY(1px)}to{transform:translateY(0)}}.j-text--display{letter-spacing:.04em;font-size:26px;line-height:1}.j-text--xl{letter-spacing:.04em;font-size:24px}.j-text--lg{letter-spacing:.04em;font-size:18px}.j-text--heading{letter-spacing:.08em;font-size:14px;line-height:1.2}.j-text--md{font-size:14px}.j-text--sm{font-size:12px}.j-text--body{letter-spacing:.05em;font-size:11px;line-height:1.3}.j-text--xs{font-size:10px}.j-text--label{letter-spacing:.1em;font-size:9px;line-height:1}.j-text--micro{letter-spacing:.08em;font-size:8px;line-height:1}.j-text--default{color:var(--j-white)}.j-text--mult,.j-text--red{color:var(--j-red)}.j-text--chips,.j-text--blue{color:var(--j-blue)}.j-text--gold{color:var(--j-gold-text)}.j-text--green{color:var(--j-green-text)}.j-text--orange{color:var(--j-orange-text)}.j-text--purple{color:var(--j-purple)}.j-text--grey{color:var(--j-grey)}.j-panel{background-color:var(--j-dark-grey);border:var(--j-panel-border-width) solid var(--j-border-silver);border-radius:var(--j-radius-md);box-shadow:0 var(--j-panel-border-width-heavy) 0 0 var(--j-border-south), 0 calc(var(--j-surface-shadow-depth) + var(--j-panel-border-width-heavy)) 0 0 #0000008c, inset 0 0 0 1px #ffffff0a;padding:var(--j-space-lg);isolation:isolate;flex-direction:column;align-items:stretch;display:flex;position:relative;overflow:hidden}.j-panel:before{content:"";border-radius:inherit;opacity:.75;pointer-events:none;z-index:0;animation:j-surface-sheen var(--j-idle-sheen-duration) ease-in-out infinite;background:radial-gradient(circle at 18% 12%,#ffffff24,#0000 34%) 0 0/160% 160%,linear-gradient(125deg,#0000 0%,#ffffff12 26%,#0000 52%,#ffffff0d 74%,#0000 100%) 12% 18%/220% 220%;position:absolute;inset:0}.j-panel__body{z-index:1;flex:1;position:relative;overflow:auto}.j-panel__back{margin-top:var(--j-space-lg);padding-top:var(--j-space-md);z-index:1;flex-shrink:0;position:relative}.j-back-btn .j-btn__face{padding-top:8px;padding-bottom:8px}.j-back-btn-wrap{padding:4px 0}.j-inner-panel{background-color:var(--j-inner-border);border:var(--j-panel-border-width) solid var(--j-panel-edge);border-radius:var(--j-radius-md);padding:var(--j-space-lg);isolation:isolate;position:relative;overflow:hidden}.j-inner-panel:before{content:"";border-radius:inherit;opacity:.7;pointer-events:none;z-index:0;animation:j-surface-sheen calc(var(--j-idle-sheen-duration) + .8s) ease-in-out infinite reverse;background:radial-gradient(circle at 16% 10%,#ffffff1f,#0000 28%) 0 0/180% 180%,linear-gradient(145deg,#0000 0%,#ffffff0f 30%,#0000 58%,#ffffff0a 84%,#0000 100%) 0 0/230% 230%;position:absolute;inset:0}.j-inner-panel>*{z-index:1;position:relative}.j-btn{appearance:none;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;padding:0;display:inline-block;position:relative}.j-btn:after{content:"";z-index:10;background:0 0;position:absolute;inset:0}.j-btn--full{width:100%}.j-btn--disabled{opacity:.55;cursor:not-allowed}.j-btn__face{border-radius:var(--j-radius-md);background:var(--j-btn-face-color,var(--j-orange));text-align:center;text-shadow:1px 1px #000c;box-shadow:0 calc(var(--j-press-y) + 2px) 0 0 #0009;transition:transform var(--j-press-speed) linear, box-shadow var(--j-press-speed) linear;isolation:isolate;position:relative;overflow:hidden;transform:translate(0)}.j-btn__face:before{content:"";border-radius:inherit;opacity:.58;pointer-events:none;z-index:0;animation:j-surface-sheen calc(var(--j-idle-sheen-duration) - .9s) ease-in-out infinite;background:radial-gradient(circle at 20% 16%,#ffffff2e,#0000 36%) 0 0/165% 165%,linear-gradient(130deg,#0000 0%,#ffffff1a 26%,#0000 58%,#ffffff0f 82%,#0000 100%) 0 0/225% 225%;position:absolute;inset:0}.j-btn__face>*{z-index:1;position:relative}.j-btn[data-pressed=true] .j-btn__face,.j-btn:active:not(:disabled):not(.j-btn--disabled) .j-btn__face{transform:translateY(var(--j-press-y));box-shadow:0 0 #0009}.j-btn:not(.j-btn--disabled):hover .j-btn__face{filter:brightness(1.1)}.j-btn--xs .j-btn__face{padding:6px 8px 3px;font-size:11px}.j-btn--sm .j-btn__face{padding:6px 12px 5px;font-size:13px}.j-btn--md .j-btn__face{padding:6px 18px 9px;font-size:16px}.j-btn--lg .j-btn__face{padding:6px 18px 11px;font-size:20px}.j-btn--orange{--j-btn-face-color:var(--j-orange)}.j-btn--red{--j-btn-face-color:var(--j-red)}.j-btn--blue{--j-btn-face-color:var(--j-blue)}.j-btn--green{--j-btn-face-color:var(--j-green)}.j-btn--tarot{--j-btn-face-color:var(--j-tarot-btn)}.j-btn--planet{--j-btn-face-color:var(--j-planet-btn)}.j-btn--spectral{--j-btn-face-color:var(--j-spectral-btn)}.j-badge{border-radius:var(--j-radius-sm);font-family:var(--j-font);letter-spacing:.04em;white-space:nowrap;text-shadow:1px 1px #000c;border:none;align-items:center;font-weight:400;display:inline-flex}.j-badge--sm{padding:2px 6px;font-size:10px}.j-badge--md{padding:4px 8px;font-size:12px}.j-badge--dark{background:var(--j-darkest);color:var(--j-white)}.j-badge--blue{background:var(--j-blue);color:var(--j-white)}.j-badge--red{background:var(--j-red);color:var(--j-white)}.j-badge--green{background:var(--j-green);color:var(--j-white)}.j-badge--orange{background:var(--j-orange);color:var(--j-white)}.j-badge--purple{background:var(--j-purple);color:var(--j-white)}.j-tabs{gap:var(--j-space-sm);scrollbar-width:none;flex-wrap:nowrap;justify-content:center;align-items:flex-end;width:100%;display:flex;overflow-x:auto}.j-tabs::-webkit-scrollbar{display:none}.j-tab{flex-direction:column;flex:none;align-items:center;display:flex;position:relative}.j-tab__indicator{justify-content:center;align-items:flex-end;height:10px;margin-bottom:3px;display:flex}.j-tab__indicator svg{fill:var(--j-red);display:block}.j-tab__indicator[data-active=true]{animation:.6s linear infinite jimbo-bounce}.j-tab__indicator[data-active=false]{visibility:hidden}.j-tab__btn{appearance:none;cursor:pointer;border-radius:var(--j-radius-md);background:var(--j-red);min-height:28px;color:var(--j-white);text-align:center;text-shadow:1px 1px #000c;isolation:isolate;border:none;outline:none;padding:6px 14px;transition:filter 80ms linear,opacity 80ms linear;position:relative;overflow:hidden;box-shadow:0 5px #0009}.j-tab__btn:before{content:"";border-radius:inherit;opacity:.52;pointer-events:none;z-index:0;animation:j-surface-sheen calc(var(--j-idle-sheen-duration) - 1.2s) ease-in-out infinite;background:linear-gradient(135deg,#0000 0%,#ffffff1a 32%,#0000 60%,#ffffff0f 86%,#0000 100%) 0 0/220% 220%;position:absolute;inset:0}.j-tab__btn>*{z-index:1;position:relative}.j-tab__btn[data-active=true]{opacity:1;animation:j-idle-bob var(--j-idle-bob-duration) ease-in-out infinite}.j-tab__btn[data-active=true]:hover{background:var(--j-red)}.j-tab__btn[data-active=false]:hover{background:var(--j-red);filter:brightness(1.08)}@keyframes jimbo-bounce{0%,15%{transform:translateY(0)}50%{transform:translateY(-3px)}85%,to{transform:translateY(0)}}@keyframes j-surface-sheen{0%,to{opacity:.52;background-position:0 0,10% 20%}50%{opacity:.8;background-position:100% 100%,88% 74%}}@keyframes j-idle-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}.j-vtabs{gap:var(--j-space-sm);flex-direction:column;display:flex}.j-vtab{cursor:pointer;writing-mode:vertical-rl;text-orientation:mixed;background-color:#0000;border:none;border-radius:8px 0 0 8px;padding:16px 8px;transition:none;transform:rotate(180deg)}.j-vtab[data-active=true]{background-color:var(--j-gold,#e4b643);color:var(--j-black,#000)}.j-toggle-list{gap:var(--j-space-sm);flex-direction:column;display:flex}.j-toggle-list__title{font-family:var(--j-font);color:var(--j-grey);letter-spacing:.04em;margin-bottom:var(--j-space-sm);font-size:12px}.j-toggle-item{align-items:center;gap:var(--j-space-md);border-radius:var(--j-radius-sm);cursor:pointer;font-family:var(--j-font);color:var(--j-white);letter-spacing:.04em;text-align:left;background:#ffffff0d;border:1px solid #0003;justify-content:flex-start;padding:6px 8px;display:flex}.j-toggle-check{border:1px solid var(--j-dark-grey);flex-shrink:0;width:10px;height:10px;box-shadow:inset 0 1px 2px #00000080}.j-toggle-check[data-on=true]{background:var(--j-orange)}.j-toggle-check[data-on=false]{background:var(--j-darkest)}.j-tooltip{border-radius:var(--j-radius-md);background:var(--j-darkest);border:var(--j-panel-border-width) solid var(--j-border-silver);max-width:280px;color:var(--j-white);pointer-events:none;z-index:9999;padding:6px 10px;transition:opacity .12s;position:fixed;box-shadow:0 2px #000c}.j-items-start{align-items:flex-start}.j-justify-between{justify-content:space-between}.j-h-full{height:100%}.j-flank{justify-content:center;align-items:stretch;gap:var(--j-space-md);width:100%;display:flex;position:relative}.j-flank__content{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.j-flank__btn{width:40px;margin:var(--j-press-y) 0;border-radius:var(--j-radius-lg);cursor:pointer;background-color:var(--j-red);color:var(--j-white);text-shadow:1px 1px #000c;box-shadow:0 var(--j-press-y) 0 0 var(--j-dark-red);transition:transform var(--j-press-speed) ease, box-shadow var(--j-press-speed) ease, background-color var(--j-press-speed) ease;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.j-flank__btn:disabled{background-color:var(--j-dark-red);cursor:default;box-shadow:none}.j-copy-row{gap:var(--j-space-sm);flex-direction:column;display:flex}.j-copy-row__field{align-items:center;gap:var(--j-space-md);display:flex}.j-copy-row__value{background:var(--j-darkest);border:var(--j-panel-border-width) solid var(--j-panel-edge);border-radius:var(--j-radius-sm);word-break:break-all;flex:1;padding:6px 10px}.j-copy-row__btn{font-family:var(--j-font);letter-spacing:.08em;border-radius:var(--j-radius-sm);cursor:pointer;flex-shrink:0;padding:4px 12px;font-size:11px;transition:color .15s,background .15s,border-color .15s}.j-copy-row__btn[data-copied=false]{color:var(--j-gold-text);border:1px solid var(--j-gold-text);background:#e4b6431f}.j-copy-row__btn[data-copied=true]{color:var(--j-green-text);border:1px solid var(--j-green-text);background:#35bd861f}.j-code-block{background-color:var(--j-darkest);border:var(--j-panel-border-width) solid var(--j-panel-edge);border-radius:var(--j-radius-lg);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 3px #00000080}.j-code-block__header{border-bottom:1px solid var(--j-inner-border);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.j-code-block__meta{align-items:center;gap:8px;display:flex}.j-code-block__filename{opacity:.6;font-size:10px}.j-code-block__lang{color:#60a5fa;background:#0006;border-radius:3px;padding:1px 6px;font-size:9px}.j-code-block__copy{cursor:pointer;background:0 0;border:none;padding:4px;display:flex}.j-code-block__copy[data-copied=false]{color:#ffffff80}.j-code-block__copy[data-copied=true]{color:#4ade80}.j-code-block__pre{font-family:var(--j-font-code);color:#f6f0d5;margin:0;padding:12px;font-size:.875rem;line-height:1.6;overflow-x:auto}.j-filter-bar{padding:var(--j-space-xl);background-color:var(--j-dark-grey);border:4px solid var(--j-border-silver);box-shadow:0 3px 0 0 var(--j-border-south);border-radius:var(--j-radius-lg);flex-wrap:wrap;gap:24px;display:flex;position:relative}.j-filter-bar__field{flex:1;min-width:200px;margin-top:10px;position:relative}.j-filter-bar__pill{background-color:var(--j-red);border:2px solid var(--j-dark-red);border-radius:var(--j-radius-md);z-index:2;padding:4px 12px;position:absolute;top:-14px;left:16px}.j-filter-bar__input{background-color:var(--j-darkest);border:none;border-bottom:4px solid var(--j-panel-edge);border-radius:var(--j-radius-lg);width:100%;color:var(--j-white);font-family:var(--j-font);letter-spacing:.08em;outline:none;padding:14px 16px 14px 48px;font-size:20px}.j-filter-bar__search-icon{pointer-events:none;width:48px;color:var(--j-blue);z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0}.j-filter-bar__select{appearance:none;background-color:var(--j-orange);color:var(--j-white);border:none;border-bottom:4px solid var(--j-dark-orange);border-radius:var(--j-radius-lg);cursor:pointer;font-family:var(--j-font);letter-spacing:.08em;text-align:center;outline:none;min-width:200px;padding:14px 48px 14px 24px;font-size:18px}.j-filter-bar__sort-icon{pointer-events:none;color:var(--j-white);opacity:.85;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.j-flank{justify-content:center;align-items:center;gap:var(--j-space-md);width:100%;display:flex}.j-flank__content{flex:1;justify-content:center;display:flex}.j-flank__btn{background:var(--j-red);color:var(--j-white);border-radius:var(--j-radius-sm);padding:var(--j-space-sm) var(--j-space-xs);cursor:pointer;box-shadow:0 var(--j-press-y) 0 var(--j-dark-grey);border:none;justify-content:center;align-items:center;transition:transform 50ms,box-shadow 50ms,opacity .2s;display:flex}.j-flank__btn[data-pressed=true]{transform:translateY(var(--j-press-y));box-shadow:0 0 0 var(--j-dark-grey)}.j-flank__btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:0 var(--j-press-y) 0 var(--j-dark-grey);transform:none}@keyframes jimbo-modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.j-modal-overlay{z-index:1000;padding:var(--j-space-md);background:#000000d1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.j-modal{border-radius:12px;flex-direction:column;width:100%;max-width:345px;max-height:calc(100% - 32px);animation:.14s cubic-bezier(.2,0,.2,1.4) both jimbo-modal-in;display:flex;overflow:hidden}.j-modal .j-panel__body{min-height:0;overflow-y:auto}.j-modal__title{text-align:center;margin:0 0 var(--j-space-xl);flex-shrink:0}.j-footer{z-index:9998;pointer-events:auto;width:100%;position:fixed;bottom:0;left:0;right:0}.j-footer__bar{background:var(--j-black);border-top:var(--j-panel-border-width) solid var(--j-panel-edge);text-align:center;width:100%;padding:4px 8px 5px}.j-footer__line{font-family:var(--j-font);color:#fff;z-index:1;margin:0;font-size:10px;line-height:1;position:relative}.j-footer__line--wrap{flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem;display:flex}.j-footer__sep{color:var(--j-grey)}.j-footer__link{color:var(--j-gold);text-decoration:none}.j-footer__extra{align-items:center;margin-left:.25rem;display:inline-flex}@media (width<=320px){.j-footer__bar{padding:4px 6px 5px}.j-footer__line,.j-footer__line--wrap{font-size:9px}}.j-floating{z-index:20;position:absolute}.j-glow--must{box-shadow:0 0 0 2px var(--j-blue), 0 0 10px var(--j-blue);animation:1.6s ease-in-out infinite j-glow-pulse}.j-glow--should{box-shadow:0 0 0 2px var(--j-gold), 0 0 10px var(--j-gold);animation:1.6s ease-in-out infinite j-glow-pulse}.j-glow--match{box-shadow:0 0 0 2px var(--j-green-text), 0 0 18px var(--j-green-text), 0 0 36px var(--j-green-text);animation:1.6s ease-in-out infinite j-glow-pulse}@keyframes j-glow-pulse{0%,to{opacity:.55}50%{opacity:1}}.j-flex{display:flex}.j-flex-col{flex-direction:column;display:flex}.j-flex-wrap{flex-wrap:wrap}.j-items-center{align-items:center}.j-justify-center{justify-content:center}.j-gap-xs{gap:var(--j-space-xs)}.j-gap-sm{gap:var(--j-space-sm)}.j-gap-md{gap:var(--j-space-md)}.j-gap-lg{gap:var(--j-space-lg)}.j-gap-xl{gap:var(--j-space-xl)}.j-mt-sm{margin-top:var(--j-space-sm)}.j-w-full{width:100%}.j-shrink-0{flex-shrink:0}.j-flex-1{flex:1}.j-min-w-0{min-width:0}.j-text-center{text-align:center}.j-overflow-hidden{overflow:hidden}.j-overflow-auto{overflow:auto}.j-relative{position:relative}.j-border--red{border-color:var(--j-red)}.j-border--blue{border-color:var(--j-blue)}.j-border--green{border-color:var(--j-green)}.j-border--gold{border-color:var(--j-gold)}.j-border--orange{border-color:var(--j-orange)}.j-border--purple{border-color:var(--j-purple)}.j-bg--red{background-color:var(--j-red)}.j-bg--blue{background-color:var(--j-blue)}.j-bg--green{background-color:var(--j-green)}.j-bg--gold{background-color:var(--j-gold)}.j-bg--orange{background-color:var(--j-orange)}.j-bg--purple{background-color:var(--j-purple)}.j-bg--dark-grey{background-color:var(--j-dark-grey)}.j-bg--darkest{background-color:var(--j-darkest)}.j-app{background:var(--j-darkest);width:min(100%,320px);max-width:320px;height:min(568px,100dvh);max-height:568px;font-family:var(--j-font);color:var(--j-white);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden;container:jimbo/inline-size}.j-app--fluid{width:100%;max-width:750px;height:auto;min-height:400px;max-height:none}.j-app__content{min-height:0;padding:var(--j-space-lg) var(--j-space-lg) var(--j-space-md);flex-direction:column;flex:1;display:flex;overflow:hidden}.j-app__scroll{min-height:0;padding:var(--j-space-lg) var(--j-space-lg) var(--j-space-md);scrollbar-width:none;-ms-overflow-style:none;flex:1;overflow:hidden auto}.j-app__scroll::-webkit-scrollbar{display:none}.j-app__footer{padding:var(--j-space-md) var(--j-space-lg) var(--j-space-md);border-top:var(--j-panel-border-width) solid var(--j-black);background:var(--j-dark-grey);gap:var(--j-space-sm);flex-direction:column;flex-shrink:0;display:flex}@container jimbo (width>=401px){.j-app__content,.j-app__scroll{padding:var(--j-space-xl) var(--j-space-xl) var(--j-space-lg)}.j-app__footer{padding:var(--j-space-md) var(--j-space-xl) var(--j-space-lg)}.j-stat-grid__value{font-size:20px}.j-info-card{padding:var(--j-space-md) var(--j-space-lg)}.j-info-card__title{font-size:14px}.j-section-header__tag{font-size:12px}}.j-section-header{align-items:center;gap:var(--j-space-md);margin-bottom:var(--j-space-md);display:flex}.j-section-header__tag{font-family:var(--j-font);letter-spacing:2px;color:var(--j-white);text-shadow:var(--j-text-shadow);border-radius:3px;flex-shrink:0;padding:2px 8px;font-size:11px}.j-section-header__rule{opacity:.33;border-radius:1px;flex:1;height:2px}.j-stat-grid{background:var(--j-dark-grey);border-radius:var(--j-radius-md);padding:var(--j-space-md);border:var(--j-panel-border-width) solid var(--j-panel-edge);box-shadow:0 2px 0 var(--j-black);gap:var(--j-space-md);text-align:center;grid-template-columns:1fr 1fr 1fr;display:grid}.j-stat-grid__value{font-family:var(--j-font);color:var(--j-gold-text);text-shadow:var(--j-text-shadow);font-size:16px}.j-stat-grid__label{font-family:var(--j-font);color:var(--j-grey);letter-spacing:2px;margin-top:2px;font-size:9px}.j-info-card{background:var(--j-dark-grey);border-radius:var(--j-radius-md);padding:var(--j-space-md);box-shadow:0 2px 0 var(--j-black);align-items:center;gap:var(--j-space-md);cursor:pointer;border:var(--j-panel-border-width) solid transparent;display:flex}.j-info-card:hover{filter:brightness(1.08)}.j-info-card__body{flex:1;min-width:0}.j-info-card__title{font-family:var(--j-font);color:var(--j-white);letter-spacing:1px;text-shadow:var(--j-text-shadow);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.j-info-card__sub{font-family:var(--j-font);color:var(--j-gold-text);letter-spacing:1px;margin-top:2px;font-size:9px}.j-info-card__aside{text-align:right;flex-shrink:0}.j-inset{background:var(--j-dark-grey);border-radius:var(--j-radius-md);padding:var(--j-space-md) var(--j-space-md);border:var(--j-panel-border-width) solid var(--j-panel-edge);box-shadow:0 2px 0 var(--j-black);font-family:var(--j-font);color:var(--j-grey);letter-spacing:1px;font-size:11px;line-height:1.7}.j-wordmark{text-align:center;margin-bottom:var(--j-space-xl)}.j-wordmark__title{font-family:var(--j-font);letter-spacing:3px;color:var(--j-gold-text);text-shadow:2px 2px #000c;font-size:32px;line-height:1}.j-wordmark__sub{font-family:var(--j-font);letter-spacing:4px;color:var(--j-grey);text-shadow:var(--j-text-shadow);margin-top:4px;font-size:14px}.j-game-card{width:var(--j-card-width,71px)}.j-card-renderer{--j-card-aspect:.75;--j-card-glare-x:50%;--j-card-glare-y:50%;aspect-ratio:var(--j-card-aspect);perspective:900px;-webkit-user-select:none;user-select:none;width:100%;display:flex;position:relative}.j-card-renderer__canvas{border-radius:var(--j-radius-md);width:100%;height:100%;image-rendering:pixelated;pointer-events:none;transform-origin:50%;transform-style:preserve-3d;will-change:transform;box-shadow:0 3px 8px #00000052}.j-card-renderer[data-hover-tilt=true]:before{content:"";border-radius:var(--j-radius-md);background:radial-gradient(circle at var(--j-card-glare-x) var(--j-card-glare-y), #ffffff47, transparent 32%), linear-gradient(135deg, transparent 0%, #ffffff14 42%, transparent 68%);opacity:0;pointer-events:none;z-index:2;mix-blend-mode:screen;transition:opacity .12s linear;position:absolute;inset:0}.j-card-renderer[data-hover-tilt=true][data-hovered=true]:before{opacity:.72}.j-card-renderer[data-hover-tilt=true][data-hovered=true] .j-card-renderer__canvas{box-shadow:0 8px 16px #0000006b}.j-card-renderer__hit{z-index:3;position:absolute;inset:0}.j-card-renderer[data-hover-tilt=true] .j-card-renderer__hit{cursor:pointer}.j-panel-spinner{gap:var(--j-space-xs);flex-direction:column;display:flex}.j-panel-spinner__label{align-items:center;display:flex}.j-panel-spinner__row{align-items:stretch;gap:var(--j-space-sm);display:flex}.j-panel-spinner__panel{justify-content:center;align-items:center;gap:var(--j-space-xs);background:var(--j-darkest);border:var(--j-panel-border-width) solid var(--j-panel-edge);border-radius:var(--j-radius-md);text-align:center;min-width:0;box-shadow:0 var(--j-panel-border-width-heavy) 0 0 var(--j-black);flex-direction:column;flex:1;padding:8px 10px;display:flex}.j-panel-spinner__media{justify-content:center;align-items:center;min-height:60px;display:flex}.j-panel-spinner__title,.j-panel-spinner__meta,.j-panel-spinner__description{width:100%}.j-panel-spinner__description .j-text{white-space:pre-line}.j-ide{overscroll-behavior-x:none;border-radius:var(--j-radius-lg);border:var(--j-panel-border-width) solid var(--j-border-silver);background:var(--j-darkest);max-width:100%;min-height:420px;color:var(--j-white);box-shadow:0 var(--j-panel-border-width-heavy) 0 0 var(--j-border-south), 0 calc(var(--j-surface-shadow-depth) + var(--j-panel-border-width-heavy)) 0 0 #0000008c;flex-direction:column;display:flex;overflow:clip hidden}.j-ide__header{border-bottom:var(--j-panel-border-width) solid var(--j-panel-edge);background:var(--j-darkest);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.j-ide__header--compact{gap:8px;padding:8px 10px}.j-ide__header-copy{min-width:0}.j-ide__title{font-family:var(--j-font);color:var(--j-gold-text);text-shadow:var(--j-text-shadow);font-size:16px}.j-ide__subtitle{font-family:var(--j-font);color:var(--j-grey);text-shadow:var(--j-text-shadow);margin-top:2px;font-size:11px}.j-ide__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.j-ide-toolbar{border-bottom:var(--j-panel-border-width) solid var(--j-panel-edge);background:var(--j-dark-grey);align-items:center;gap:8px;min-width:0;padding:10px 10px 6px;display:flex}.j-ide-toolbar__tabs{flex:1;min-width:0;padding-bottom:3px}.j-ide-toolbar__action{flex-shrink:0}.j-ide__body{background:var(--j-darkest);flex:1;min-height:0;overflow:auto}.j-ide__body--map{overflow:hidden}.j-ide__results{padding:12px}.j-seed-input{gap:var(--j-space-xs);flex-direction:column;width:fit-content;max-width:100%;display:flex}.j-seed-input--normal{--j-seed-shell-bg:var(--j-dark-grey);--j-seed-shell-border:var(--j-border-silver);--j-seed-shell-border-bottom:var(--j-border-south);--j-seed-field-bg:var(--j-darkest)}.j-seed-input--dark{--j-seed-shell-bg:var(--j-darkest);--j-seed-shell-border:var(--j-panel-edge);--j-seed-shell-border-bottom:var(--j-black);--j-seed-field-bg:var(--j-darkest)}.j-seed-input--alt{--j-seed-shell-bg:var(--j-teal-grey);--j-seed-shell-border:var(--j-border-silver);--j-seed-shell-border-bottom:var(--j-panel-edge);--j-seed-field-bg:var(--j-dark-grey)}.j-seed-input__shell{border-radius:var(--j-radius-md);border:var(--j-panel-border-width) solid var(--j-seed-shell-border);background:var(--j-seed-shell-bg);width:fit-content;max-width:100%;box-shadow:0 var(--j-panel-border-width-heavy) 0 0 var(--j-seed-shell-border-bottom), 0 calc(var(--j-surface-shadow-depth) + var(--j-panel-border-width-heavy)) 0 0 #0000008c;cursor:text;padding:3px}.j-seed-input__shell[data-valid=true]{border-color:var(--j-green);border-bottom-color:var(--j-dark-green)}.j-seed-input__field{border-radius:calc(var(--j-radius-md) - 2px);border:var(--j-panel-border-width) solid var(--j-panel-edge);background:var(--j-seed-field-bg);width:calc(8ch + 16px);min-width:calc(8ch + 16px);max-width:calc(8ch + 16px);color:var(--j-gold-text);font-size:18px;font-family:var(--j-font);letter-spacing:.08em;text-align:center;text-shadow:var(--j-text-shadow);box-sizing:border-box;outline:none;padding:6px 8px 8px;font-weight:400}.j-seed-input__field::placeholder{color:var(--j-grey);letter-spacing:.08em;opacity:1;font-size:18px}.j-seed-input__field:focus{border-color:var(--j-gold)}.j-seed-spinner{gap:var(--j-space-xs);flex-direction:column;width:fit-content;max-width:100%;display:flex}.j-seed-spinner__meta{justify-content:space-between;align-items:center;gap:var(--j-space-sm);display:flex}.j-seed-spinner__label{font-family:var(--j-font);letter-spacing:.08em;color:var(--j-grey);text-shadow:var(--j-text-shadow);font-size:10px}.j-seed-spinner__row{align-items:flex-end;gap:var(--j-space-sm);display:flex}.j-seed-spinner__copy{align-items:center;gap:4px;display:inline-flex}@media (prefers-reduced-motion:reduce){.j-panel:before,.j-inner-panel:before,.j-btn__face:before,.j-tab__btn:before,.j-footer__bar:before,.j-seed-input__shell:before,.j-tab__btn[data-active=true]{animation:none}}.j-aesthetic-selector{gap:var(--j-space-sm);flex-direction:column;display:flex}.j-aesthetic-selector__list{gap:var(--j-space-sm);flex-wrap:wrap;display:flex}.j-aesthetic-pill{border-radius:var(--j-radius-md);border:2px solid var(--j-panel-edge);background:var(--j-darkest);color:var(--j-grey);cursor:pointer;font-size:11px;font-family:var(--j-font);letter-spacing:.04em;text-shadow:var(--j-text-shadow);padding:4px 10px;font-weight:400;transition:border-color .1s,background .1s,color .1s;box-shadow:0 2px #0000004d}.j-aesthetic-pill:hover{border-color:var(--j-gold);color:var(--j-gold-text)}.j-aesthetic-pill[data-active=true]{border-color:var(--j-gold);color:var(--j-gold-text);box-shadow:0 0 0 1px var(--j-gold), 0 2px 0 0 #0000004d;background:#e4b64321}.j-showcase{background:var(--j-darkest);width:100%;height:100%;font-family:var(--j-font);color:var(--j-white);flex-direction:column;display:flex;overflow:hidden}.j-showcase__scroll{flex:1;min-height:0;padding:18px 14px 10px;overflow-y:auto}.j-showcase__wordmark{text-align:center;margin-bottom:18px}.j-showcase__wordmark-title{letter-spacing:3px;color:var(--j-gold-text);text-shadow:2px 2px #000c;font-size:32px;line-height:1}.j-showcase__wordmark-sub{letter-spacing:4px;color:var(--j-grey);text-shadow:var(--j-text-shadow);margin-top:4px;font-size:14px}.j-showcase__stats{background:var(--j-dark-grey);border-radius:var(--j-radius-md);border:2px solid var(--j-panel-edge);box-shadow:0 2px 0 var(--j-black);gap:var(--j-space-md);text-align:center;margin-bottom:var(--j-space-xl);grid-template-columns:1fr 1fr 1fr;padding:10px;display:grid}.j-showcase__stat-value{color:var(--j-gold-text);text-shadow:var(--j-text-shadow);font-size:16px}.j-showcase__stat-label{color:var(--j-grey);letter-spacing:2px;margin-top:2px;font-size:9px}.j-showcase__section-header{align-items:center;gap:var(--j-space-md);margin-bottom:var(--j-space-md);display:flex}.j-showcase__section-tag{letter-spacing:2px;color:var(--j-white);text-shadow:var(--j-text-shadow);border-radius:3px;padding:2px 8px;font-size:11px}.j-showcase__section-rule{border-radius:1px;flex:1;height:2px}.j-showcase__filter-list{gap:var(--j-space-md);margin-bottom:var(--j-space-xl);flex-direction:column;display:flex}.j-showcase__filter-card{background:var(--j-dark-grey);border-radius:var(--j-radius-md);box-shadow:0 2px 0 var(--j-black);cursor:pointer;align-items:center;gap:10px;padding:10px;display:flex}.j-showcase__filter-sprites{gap:2px;display:flex}.j-showcase__filter-sprite{justify-content:center;align-items:center;width:30px;height:40px;display:flex}.j-showcase__filter-info{flex:1;min-width:0}.j-showcase__filter-name{color:var(--j-white);letter-spacing:1px;text-shadow:var(--j-text-shadow);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.j-showcase__filter-author{color:var(--j-gold-text);letter-spacing:1px;margin-top:2px;font-size:9px}.j-showcase__filter-hits{text-align:right}.j-showcase__filter-hits-value{text-shadow:var(--j-text-shadow);font-size:14px}.j-showcase__filter-hits-label{color:var(--j-grey);letter-spacing:1px;font-size:8px}.j-showcase__recent{background:var(--j-dark-grey);border-radius:var(--j-radius-md);border:2px solid var(--j-panel-edge);box-shadow:0 2px 0 var(--j-black);color:var(--j-grey);letter-spacing:1px;padding:8px 10px;font-size:11px;line-height:1.7}.j-showcase__actions{border-top:2px solid var(--j-black);background:var(--j-dark-grey);flex-direction:column;gap:6px;padding:8px 10px 10px;display:flex}.j-footer__suits{align-items:center;display:inline-flex}.j-footer__suit-stage{vertical-align:middle;width:1.5em;height:1em;display:inline-block;position:relative}.j-footer__suit-char{opacity:0;justify-content:center;align-items:center;animation-duration:5s;animation-timing-function:ease-out;animation-iteration-count:infinite;animation-delay:0s;display:inline-flex;position:absolute;inset:0}.j-copy-row__label{letter-spacing:2px}.j-motely-badge{align-items:center;gap:6px;display:inline-flex}.j-motely-badge--chip{border-radius:var(--j-radius-sm);background:var(--j-darkest);border:1px solid var(--j-panel-edge);padding:3px 8px}.j-text--dance-container{display:inline-flex}.j-font-dance-char{animation:3s ease-in-out infinite j-font-dance;display:inline-block}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}.j-juice-hover{transition:transform .2s cubic-bezier(.175,.885,.32,1.275)}.j-juice-hover:hover{z-index:5;transform:translateY(-2px)}
1
+ @font-face{font-family:m6x11plus;src:url(/fonts/m6x11plus.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:m6x11;src:url(/fonts/m6x11plus.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}*{scrollbar-width:none!important;-ms-overflow-style:none!important}::-webkit-scrollbar{display:none!important}:root{--j-red:#fe5148;--j-blue:#0093ff;--j-green:#429f79;--j-orange:#ff9800;--j-gold:#e4b643;--j-purple:#9e74ce;--j-dark-red:#a02721;--j-dark-blue:#0057a1;--j-dark-orange:#a05b00;--j-dark-green:#215f46;--j-dark-purple:#5e437e;--j-dark-grey:#3a5055;--j-darkest:#1e2b2d;--j-grey:#708386;--j-teal-grey:#404c4e;--j-panel-edge:#1e2e32;--j-inner-border:#334461;--j-border-silver:#b9c2d2;--j-border-south:#777e89;--j-gold-text:#e4b643;--j-green-text:#35bd86;--j-orange-text:#ff8f00;--j-white:#fff;--j-black:#000;--j-tarot-btn:#9e74ce;--j-planet-btn:#00a7ca;--j-spectral-btn:#2e76fd;--j-tarot-btn-dark:#5e437e;--j-planet-btn-dark:#00657c;--j-spectral-btn-dark:#14449e;--j-font:"m6x11plus", "m6x11", monospace;--j-font-code:"JetBrains Mono", "Cascadia Code", "Fira Code", "SF Mono", SFMono-Regular, Menlo, Consolas, ui-monospace, "Courier New", monospace;--j-text-shadow:1px 1px 0 #000c;--j-space-xs:2px;--j-space-sm:4px;--j-space-md:8px;--j-space-lg:12px;--j-space-xl:16px;--j-radius-sm:4px;--j-radius-md:6px;--j-radius-lg:8px;--j-radius-pill:10px;--j-ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--j-press-y:3px;--j-press-speed:55ms;--j-panel-border-width:3px;--j-panel-south-edge-width:calc(var(--j-panel-border-width) / 2);--j-panel-border-width-heavy:6px;--j-surface-shadow-depth:4px;--j-idle-sheen-duration:5.6s;--j-idle-bob-duration:3.4s}.j-text{font-family:var(--j-font);text-shadow:var(--j-text-shadow);color:var(--j-white);font-weight:400;line-height:1.2}.j-text--no-shadow{text-shadow:none}.j-text--upper{letter-spacing:.08em}.j-text--dance-container{white-space:pre-wrap;display:inline-block}@keyframes j-font-dance{0%{transform:translateY(0)}25%{transform:translateY(-1px)}50%{transform:translateY(0)}75%{transform:translateY(1px)}to{transform:translateY(0)}}.j-text--display{letter-spacing:.04em;font-size:26px;line-height:1}.j-text--xl{letter-spacing:.04em;font-size:24px}.j-text--lg{letter-spacing:.04em;font-size:18px}.j-text--heading{letter-spacing:.08em;font-size:14px;line-height:1.2}.j-text--md{font-size:14px}.j-text--sm{font-size:12px}.j-text--body{letter-spacing:.05em;font-size:11px;line-height:1.3}.j-text--xs{font-size:10px}.j-text--label{letter-spacing:.1em;font-size:9px;line-height:1}.j-text--micro{letter-spacing:.08em;font-size:8px;line-height:1}.j-text--default{color:var(--j-white)}.j-text--mult,.j-text--red{color:var(--j-red)}.j-text--chips,.j-text--blue{color:var(--j-blue)}.j-text--gold{color:var(--j-gold-text)}.j-text--green{color:var(--j-green-text)}.j-text--orange{color:var(--j-orange-text)}.j-text--purple{color:var(--j-purple)}.j-text--grey{color:var(--j-grey)}.j-text--white{color:var(--j-white)}.j-panel{background-color:var(--j-dark-grey);border:var(--j-panel-border-width) solid var(--j-border-silver);border-radius:var(--j-radius-md);box-shadow:0 var(--j-panel-south-edge-width) 0 0 var(--j-border-south), 0 calc(var(--j-surface-shadow-depth) + var(--j-panel-south-edge-width)) 0 0 #0000008c, inset 0 0 0 1px #ffffff0a;padding:var(--j-space-lg);isolation:isolate;flex-direction:column;align-items:stretch;display:flex;position:relative;overflow:hidden}.j-panel:before{content:"";border-radius:inherit;opacity:.75;pointer-events:none;z-index:0;animation:j-surface-sheen var(--j-idle-sheen-duration) ease-in-out infinite;background:radial-gradient(circle at 18% 12%,#ffffff24,#0000 34%) 0 0/160% 160%,linear-gradient(125deg,#0000 0%,#ffffff12 26%,#0000 52%,#ffffff0d 74%,#0000 100%) 12% 18%/220% 220%;position:absolute;inset:0}.j-panel__body{z-index:1;flex:1;position:relative;overflow:auto}.j-panel__back{margin-top:var(--j-space-md);padding-top:var(--j-space-sm);z-index:1;flex-shrink:0;position:relative}.j-back-btn .j-btn__face{padding-top:5px;padding-bottom:5px}.j-back-btn-wrap{padding:0}.j-inner-panel{background-color:var(--j-inner-border);border:var(--j-panel-border-width) solid var(--j-panel-edge);border-radius:var(--j-radius-md);padding:var(--j-space-lg);isolation:isolate;position:relative;overflow:hidden}.j-inner-panel:before{content:"";border-radius:inherit;opacity:.7;pointer-events:none;z-index:0;animation:j-surface-sheen calc(var(--j-idle-sheen-duration) + .8s) ease-in-out infinite reverse;background:radial-gradient(circle at 16% 10%,#ffffff1f,#0000 28%) 0 0/180% 180%,linear-gradient(145deg,#0000 0%,#ffffff0f 30%,#0000 58%,#ffffff0a 84%,#0000 100%) 0 0/230% 230%;position:absolute;inset:0}.j-inner-panel>*{z-index:1;position:relative}.j-btn{appearance:none;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;padding:0;display:inline-block;position:relative}.j-btn:after{content:"";z-index:10;background:0 0;position:absolute;inset:0}.j-btn--full{width:100%}.j-btn--disabled{opacity:.55;cursor:not-allowed}.j-btn__face{border-radius:var(--j-radius-md);background:var(--j-btn-face-color,var(--j-orange));text-align:center;text-shadow:1px 1px #000c;box-shadow:0 calc(var(--j-press-y) + 2px) 0 0 #000c;transition:transform var(--j-press-speed) linear, box-shadow var(--j-press-speed) linear, background-color var(--j-press-speed) linear;isolation:isolate;position:relative;overflow:hidden;transform:translate(0)}.j-btn__face:before{content:none}.j-btn__face>*{z-index:1;position:relative}.j-btn[data-pressed=true] .j-btn__face,.j-btn:active:not(:disabled):not(.j-btn--disabled) .j-btn__face{background:var(--j-btn-shadow-color,var(--j-dark-orange));transform:translateY(var(--j-press-y));box-shadow:none}.j-btn:not(.j-btn--disabled):hover .j-btn__face{background:var(--j-btn-shadow-color,var(--j-dark-orange))}.j-btn--xs .j-btn__face{padding:6px 8px 3px;font-size:11px}.j-btn--sm .j-btn__face{padding:6px 12px 5px;font-size:13px}.j-btn--md .j-btn__face{padding:6px 18px 9px;font-size:16px}.j-btn--lg .j-btn__face{padding:6px 18px 11px;font-size:20px}.j-btn--orange{--j-btn-face-color:var(--j-orange);--j-btn-shadow-color:var(--j-dark-orange)}.j-btn--red{--j-btn-face-color:var(--j-red);--j-btn-shadow-color:var(--j-dark-red)}.j-btn--blue{--j-btn-face-color:var(--j-blue);--j-btn-shadow-color:var(--j-dark-blue)}.j-btn--green{--j-btn-face-color:var(--j-green);--j-btn-shadow-color:var(--j-dark-green)}.j-btn--tarot{--j-btn-face-color:var(--j-tarot-btn);--j-btn-shadow-color:var(--j-tarot-btn-dark)}.j-btn--planet{--j-btn-face-color:var(--j-planet-btn);--j-btn-shadow-color:var(--j-planet-btn-dark)}.j-btn--spectral{--j-btn-face-color:var(--j-spectral-btn);--j-btn-shadow-color:var(--j-spectral-btn-dark)}.j-btn--grey{--j-btn-face-color:var(--j-grey);--j-btn-shadow-color:var(--j-dark-grey)}.j-badge{border-radius:var(--j-radius-sm);font-family:var(--j-font);letter-spacing:.04em;white-space:nowrap;text-shadow:1px 1px #000c;border:none;align-items:center;font-weight:400;display:inline-flex}.j-badge--sm{padding:2px 6px;font-size:10px}.j-badge--md{padding:4px 8px;font-size:12px}.j-badge--dark{background:var(--j-darkest);color:var(--j-white)}.j-badge--blue{background:var(--j-blue);color:var(--j-white)}.j-badge--red{background:var(--j-red);color:var(--j-white)}.j-badge--green{background:var(--j-green);color:var(--j-white)}.j-badge--orange{background:var(--j-orange);color:var(--j-white)}.j-badge--purple{background:var(--j-purple);color:var(--j-white)}.j-badge--grey{background:var(--j-teal-grey);color:var(--j-white)}.j-tabs{gap:var(--j-space-sm);scrollbar-width:none;flex-wrap:nowrap;justify-content:center;align-items:flex-end;width:100%;display:flex;overflow-x:auto}.j-tabs::-webkit-scrollbar{display:none}.j-tab{flex-direction:column;flex:none;align-items:center;display:flex;position:relative}.j-tab__indicator{justify-content:center;align-items:flex-end;height:10px;margin-bottom:3px;display:flex}.j-tab__indicator svg{fill:var(--j-red);display:block}.j-tab__indicator[data-active=true]{animation:.6s linear infinite jimbo-bounce}.j-tab__indicator[data-active=false]{visibility:hidden}.j-tab__btn{appearance:none;cursor:pointer;border-radius:var(--j-radius-md);background:var(--j-red);min-height:28px;color:var(--j-white);text-align:center;text-shadow:1px 1px #000c;isolation:isolate;border:none;outline:none;padding:6px 14px;transition:filter 80ms linear,opacity 80ms linear;position:relative;overflow:hidden;box-shadow:0 5px #0009}.j-tab__btn:before{content:none}.j-tab__btn>*{z-index:1;position:relative}.j-tab__btn[data-active=true]{opacity:1;animation:j-idle-bob var(--j-idle-bob-duration) ease-in-out infinite}.j-tab__btn[data-active=true]:hover{background:var(--j-red)}.j-tab__btn[data-active=false]:hover{background:var(--j-red);background:var(--j-dark-red)}@keyframes jimbo-bounce{0%,15%{transform:translateY(0)}50%{transform:translateY(-3px)}85%,to{transform:translateY(0)}}@keyframes j-surface-sheen{0%,to{opacity:.52;background-position:0 0,10% 20%}50%{opacity:.8;background-position:100% 100%,88% 74%}}@keyframes j-idle-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}.j-vtabs{gap:var(--j-space-sm);flex-direction:column;display:flex}.j-vtab{cursor:pointer;writing-mode:vertical-rl;text-orientation:mixed;background-color:#0000;border:none;border-radius:8px 0 0 8px;padding:16px 8px;transition:none;transform:rotate(180deg)}.j-vtab[data-active=true]{background-color:var(--j-gold,#e4b643);color:var(--j-black,#000)}.j-toggle-list{gap:var(--j-space-sm);flex-direction:column;display:flex}.j-toggle-list__title{font-family:var(--j-font);color:var(--j-grey);letter-spacing:.04em;margin-bottom:var(--j-space-sm);font-size:12px}.j-toggle-item{align-items:center;gap:var(--j-space-md);border-radius:var(--j-radius-sm);cursor:pointer;font-family:var(--j-font);color:var(--j-white);letter-spacing:.04em;text-align:left;background:#ffffff0d;border:1px solid #0003;justify-content:flex-start;padding:6px 8px;display:flex}.j-toggle-check{border:1px solid var(--j-dark-grey);flex-shrink:0;width:10px;height:10px;box-shadow:inset 0 1px 2px #00000080}.j-toggle-check[data-on=true]{background:var(--j-orange)}.j-toggle-check[data-on=false]{background:var(--j-darkest)}.j-tooltip{border-radius:var(--j-radius-md);background:var(--j-darkest);border:var(--j-panel-border-width) solid var(--j-border-silver);max-width:280px;color:var(--j-white);pointer-events:none;z-index:9999;padding:6px 10px;transition:opacity .12s;position:fixed;box-shadow:0 2px #000c}.j-items-start{align-items:flex-start}.j-justify-between{justify-content:space-between}.j-h-full{height:100%}.j-flank{justify-content:center;align-items:stretch;gap:var(--j-space-md);width:100%;display:flex;position:relative}.j-flank__content{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.j-flank__btn{width:40px;margin:var(--j-press-y) 0;border-radius:var(--j-radius-lg);cursor:pointer;background-color:var(--j-red);color:var(--j-white);text-shadow:1px 1px #000c;box-shadow:0 var(--j-press-y) 0 0 var(--j-dark-red);transition:transform var(--j-press-speed) ease, box-shadow var(--j-press-speed) ease, background-color var(--j-press-speed) ease;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.j-flank__btn[data-pressed=true]{transform:translateY(var(--j-press-y));box-shadow:none}.j-flank__btn:disabled{background-color:var(--j-dark-red);cursor:default;box-shadow:none}.j-copy-row{gap:var(--j-space-sm);flex-direction:column;display:flex}.j-copy-row__field{align-items:center;gap:var(--j-space-md);display:flex}.j-copy-row__value{background:var(--j-darkest);border:var(--j-panel-border-width) solid var(--j-panel-edge);border-radius:var(--j-radius-sm);word-break:break-all;flex:1;padding:6px 10px}.j-copy-row__btn{font-family:var(--j-font);letter-spacing:.08em;border-radius:var(--j-radius-sm);cursor:pointer;flex-shrink:0;padding:4px 12px;font-size:11px;transition:color .15s,background .15s,border-color .15s}.j-copy-row__btn[data-copied=false]{color:var(--j-gold-text);border:1px solid var(--j-gold-text);background:#e4b6431f}.j-copy-row__btn[data-copied=true]{color:var(--j-green-text);border:1px solid var(--j-green-text);background:#35bd861f}.j-code-block{background-color:var(--j-darkest);border:var(--j-panel-border-width) solid var(--j-panel-edge);border-radius:var(--j-radius-lg);flex-direction:column;display:flex;overflow:hidden;box-shadow:0 3px #00000080}.j-code-block__header{border-bottom:1px solid var(--j-inner-border);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.j-code-block__meta{align-items:center;gap:8px;display:flex}.j-code-block__filename{opacity:.6;font-size:10px}.j-code-block__lang{color:#60a5fa;background:#0006;border-radius:3px;padding:1px 6px;font-size:9px}.j-code-block__copy{cursor:pointer;background:0 0;border:none;padding:4px;display:flex}.j-code-block__copy[data-copied=false]{color:#ffffff80}.j-code-block__copy[data-copied=true]{color:#4ade80}.j-code-block__pre{font-family:var(--j-font-code);color:#f6f0d5;margin:0;padding:12px;font-size:.875rem;line-height:1.6;overflow-x:auto}.j-filter-bar{padding:var(--j-space-xl);background-color:var(--j-dark-grey);border:4px solid var(--j-border-silver);box-shadow:0 3px 0 0 var(--j-border-south);border-radius:var(--j-radius-lg);flex-wrap:wrap;gap:24px;display:flex;position:relative}.j-filter-bar__field{flex:1;min-width:200px;margin-top:10px;position:relative}.j-filter-bar__pill{background-color:var(--j-red);border:2px solid var(--j-dark-red);border-radius:var(--j-radius-md);z-index:2;padding:4px 12px;position:absolute;top:-14px;left:16px}.j-filter-bar__input{background-color:var(--j-darkest);border:none;border-bottom:4px solid var(--j-panel-edge);border-radius:var(--j-radius-lg);width:100%;color:var(--j-white);font-family:var(--j-font);letter-spacing:.08em;outline:none;padding:14px 16px 14px 48px;font-size:20px}.j-filter-bar__search-icon{pointer-events:none;width:48px;color:var(--j-blue);z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0}.j-filter-bar__select{appearance:none;background-color:var(--j-orange);color:var(--j-white);border:none;border-bottom:4px solid var(--j-dark-orange);border-radius:var(--j-radius-lg);cursor:pointer;font-family:var(--j-font);letter-spacing:.08em;text-align:center;outline:none;min-width:200px;padding:14px 48px 14px 24px;font-size:18px}.j-filter-bar__sort-icon{pointer-events:none;color:var(--j-white);opacity:.85;position:absolute;top:50%;right:16px;transform:translateY(-50%)}@keyframes jimbo-modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.j-modal-overlay{z-index:1000;padding:var(--j-space-md);background:#000000d1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.j-modal{border-radius:12px;flex-direction:column;width:100%;max-width:345px;max-height:calc(100% - 32px);animation:.14s cubic-bezier(.2,0,.2,1.4) both jimbo-modal-in;display:flex;overflow:hidden}.j-modal .j-panel__body{min-height:0;overflow-y:auto}.j-modal__title{text-align:center;margin:0 0 var(--j-space-xl);flex-shrink:0}.j-input-modal__message{margin-bottom:var(--j-space-md);display:block}.j-text-input{background:var(--j-darkest);width:100%;color:var(--j-white);border:1px solid var(--j-panel-edge);border-radius:var(--j-radius-sm);font-size:13px;font-family:var(--j-font);letter-spacing:1px;box-sizing:border-box;outline:none;padding:8px 10px}.j-text-input[aria-invalid=true],.j-text-input[data-invalid=true]{border-color:var(--j-red)}.j-input-modal__error{margin-top:6px;display:block}.j-input-modal__actions{justify-content:flex-end;gap:var(--j-space-md);margin-top:14px;display:flex}.j-footer{z-index:9998;pointer-events:auto;width:100%;position:fixed;bottom:0;left:0;right:0}.j-footer__bar{background:var(--j-black);border-top:var(--j-panel-border-width) solid var(--j-panel-edge);text-align:center;width:100%;padding:4px 8px 5px}.j-footer__line{font-family:var(--j-font);color:#fff;z-index:1;margin:0;font-size:10px;line-height:1;position:relative}.j-footer__line--wrap{flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem;display:flex}.j-footer__chunk{white-space:nowrap}.j-footer__chunk--credit{gap:.25rem;display:inline-flex}.j-footer__sep{color:var(--j-grey)}.j-footer__link{color:var(--j-gold);text-decoration:none}.j-footer__extra{align-items:center;margin-left:.25rem;display:inline-flex}@media (width<=320px){.j-footer__bar{padding:4px 6px 5px}.j-footer__line,.j-footer__line--wrap{font-size:9px}}.j-floating{z-index:20;position:absolute}.j-glow--must{box-shadow:0 0 0 2px var(--j-blue), 0 0 10px var(--j-blue);animation:1.6s ease-in-out infinite j-glow-pulse}.j-glow--should{box-shadow:0 0 0 2px var(--j-gold), 0 0 10px var(--j-gold);animation:1.6s ease-in-out infinite j-glow-pulse}.j-glow--match{box-shadow:0 0 0 2px var(--j-green-text), 0 0 18px var(--j-green-text), 0 0 36px var(--j-green-text);animation:1.6s ease-in-out infinite j-glow-pulse}@keyframes j-glow-pulse{0%,to{opacity:.55}50%{opacity:1}}.j-flex{display:flex}.j-flex-col{flex-direction:column;display:flex}.j-flex-wrap{flex-wrap:wrap}.j-items-center{align-items:center}.j-justify-center{justify-content:center}.j-gap-xs{gap:var(--j-space-xs)}.j-gap-sm{gap:var(--j-space-sm)}.j-gap-md{gap:var(--j-space-md)}.j-gap-lg{gap:var(--j-space-lg)}.j-gap-xl{gap:var(--j-space-xl)}.j-mt-sm{margin-top:var(--j-space-sm)}.j-w-full{width:100%}.j-shrink-0{flex-shrink:0}.j-flex-1{flex:1}.j-min-w-0{min-width:0}.j-text-center{text-align:center}.j-overflow-hidden{overflow:hidden}.j-overflow-auto{overflow:auto}.j-relative{position:relative}.j-border--red{border-color:var(--j-red)}.j-border--blue{border-color:var(--j-blue)}.j-border--green{border-color:var(--j-green)}.j-border--gold{border-color:var(--j-gold)}.j-border--orange{border-color:var(--j-orange)}.j-border--purple{border-color:var(--j-purple)}.j-bg--red{background-color:var(--j-red)}.j-bg--blue{background-color:var(--j-blue)}.j-bg--green{background-color:var(--j-green)}.j-bg--gold{background-color:var(--j-gold)}.j-bg--orange{background-color:var(--j-orange)}.j-bg--purple{background-color:var(--j-purple)}.j-bg--dark-grey{background-color:var(--j-dark-grey)}.j-bg--darkest{background-color:var(--j-darkest)}.j-app{background:var(--j-darkest);width:min(100%,320px);max-width:320px;height:min(568px,100dvh);max-height:568px;font-family:var(--j-font);color:var(--j-white);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden;container:jimbo/inline-size}.j-app--fluid{width:100%;max-width:750px;height:auto;min-height:400px;max-height:none}.j-app__content{min-height:0;padding:var(--j-space-lg) var(--j-space-lg) var(--j-space-md);flex-direction:column;flex:1;display:flex;overflow:hidden}.j-app__scroll{min-height:0;padding:var(--j-space-lg) var(--j-space-lg) var(--j-space-md);scrollbar-width:none;-ms-overflow-style:none;flex:1;overflow:hidden auto}.j-app__scroll::-webkit-scrollbar{display:none}.j-app__footer{padding:var(--j-space-md) var(--j-space-lg) var(--j-space-md);border-top:var(--j-panel-border-width) solid var(--j-black);background:var(--j-dark-grey);gap:var(--j-space-sm);flex-direction:column;flex-shrink:0;display:flex}@container jimbo (width>=401px){.j-app__content,.j-app__scroll{padding:var(--j-space-xl) var(--j-space-xl) var(--j-space-lg)}.j-app__footer{padding:var(--j-space-md) var(--j-space-xl) var(--j-space-lg)}.j-stat-grid__value{font-size:20px}.j-info-card{padding:var(--j-space-md) var(--j-space-lg)}.j-info-card__title{font-size:14px}.j-section-header__tag{font-size:12px}}.j-section-header{align-items:center;gap:var(--j-space-md);margin-bottom:var(--j-space-md);display:flex}.j-section-header__tag{font-family:var(--j-font);letter-spacing:2px;color:var(--j-white);text-shadow:var(--j-text-shadow);border-radius:3px;flex-shrink:0;padding:2px 8px;font-size:11px}.j-section-header__rule{opacity:.33;border-radius:1px;flex:1;height:2px}.j-stat-grid{background:var(--j-dark-grey);border-radius:var(--j-radius-md);padding:var(--j-space-md);border:var(--j-panel-border-width) solid var(--j-panel-edge);box-shadow:0 2px 0 var(--j-black);gap:var(--j-space-md);text-align:center;grid-template-columns:1fr 1fr 1fr;display:grid}.j-stat-grid__value{font-family:var(--j-font);color:var(--j-gold-text);text-shadow:var(--j-text-shadow);font-size:16px}.j-stat-grid__label{font-family:var(--j-font);color:var(--j-grey);letter-spacing:2px;margin-top:2px;font-size:9px}.j-info-card{background:var(--j-dark-grey);border-radius:var(--j-radius-md);padding:var(--j-space-md);box-shadow:0 2px 0 var(--j-black);align-items:center;gap:var(--j-space-md);cursor:pointer;border:var(--j-panel-border-width) solid transparent;display:flex}.j-info-card:hover{filter:brightness(1.08)}.j-info-card__body{flex:1;min-width:0}.j-info-card__title{font-family:var(--j-font);color:var(--j-white);letter-spacing:1px;text-shadow:var(--j-text-shadow);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.j-info-card__sub{font-family:var(--j-font);color:var(--j-gold-text);letter-spacing:1px;margin-top:2px;font-size:9px}.j-info-card__aside{text-align:right;flex-shrink:0}.j-inset{background:var(--j-dark-grey);border-radius:var(--j-radius-md);padding:var(--j-space-md) var(--j-space-md);border:var(--j-panel-border-width) solid var(--j-panel-edge);box-shadow:0 2px 0 var(--j-black);font-family:var(--j-font);color:var(--j-grey);letter-spacing:1px;font-size:11px;line-height:1.7}.j-wordmark{text-align:center;margin-bottom:var(--j-space-xl)}.j-wordmark__title{font-family:var(--j-font);letter-spacing:3px;color:var(--j-gold-text);text-shadow:2px 2px #000c;font-size:32px;line-height:1}.j-wordmark__sub{font-family:var(--j-font);letter-spacing:4px;color:var(--j-grey);text-shadow:var(--j-text-shadow);margin-top:4px;font-size:14px}.j-game-card{width:var(--j-card-width,71px)}.j-card-renderer{--j-card-aspect:.75;--j-card-glare-x:50%;--j-card-glare-y:50%;aspect-ratio:var(--j-card-aspect);perspective:900px;-webkit-user-select:none;user-select:none;width:100%;display:flex;position:relative}.j-card-renderer__canvas{border-radius:var(--j-radius-md);width:100%;height:100%;image-rendering:pixelated;pointer-events:none;transform-origin:50%;transform-style:preserve-3d;will-change:transform;box-shadow:0 3px 8px #00000052}.j-card-renderer[data-hover-tilt=true]:before{content:"";border-radius:var(--j-radius-md);background:radial-gradient(circle at var(--j-card-glare-x) var(--j-card-glare-y), #ffffff47, transparent 32%), linear-gradient(135deg, transparent 0%, #ffffff14 42%, transparent 68%);opacity:0;pointer-events:none;z-index:2;mix-blend-mode:screen;transition:opacity .12s linear;position:absolute;inset:0}.j-card-renderer[data-hover-tilt=true][data-hovered=true]:before{opacity:.72}.j-card-renderer[data-hover-tilt=true][data-hovered=true] .j-card-renderer__canvas{box-shadow:0 8px 16px #0000006b}.j-card-renderer__hit{z-index:3;position:absolute;inset:0}.j-card-renderer[data-hover-tilt=true] .j-card-renderer__hit{cursor:pointer}.j-panel-spinner{gap:var(--j-space-xs);flex-direction:column;width:min(100%,320px);max-width:320px;display:flex}.j-panel-spinner__label{align-items:center;display:flex}.j-panel-spinner__row{align-items:stretch;gap:var(--j-space-sm);grid-template-columns:30px minmax(0,1fr) 30px;width:100%;display:grid}.j-panel-spinner__arrow{align-self:stretch;width:30px;min-height:92px}.j-panel-spinner__arrow .j-btn__face{height:100%;min-height:92px;box-shadow:0 var(--j-panel-border-width-heavy) 0 0 #000c;justify-content:center;align-items:center;padding:0;display:flex}.j-panel-spinner__arrow--left,.j-panel-spinner__arrow--right{border-radius:var(--j-radius-md)}.j-panel-spinner__panel{justify-content:center;align-items:center;gap:var(--j-space-xs);background:var(--j-darkest);border:var(--j-panel-border-width) solid var(--j-panel-edge);border-radius:var(--j-radius-md);text-align:center;min-width:0;min-height:92px;box-shadow:0 var(--j-panel-border-width-heavy) 0 0 var(--j-black);box-sizing:border-box;flex-direction:column;padding:8px 10px;display:flex}.j-panel-spinner__media{justify-content:center;align-items:center;min-height:60px;display:flex}.j-panel-spinner__title,.j-panel-spinner__meta,.j-panel-spinner__description{width:100%;min-width:0}.j-panel-spinner__description .j-text{white-space:pre-line;overflow-wrap:anywhere;display:block}.j-ide{overscroll-behavior-x:none;border-radius:var(--j-radius-lg);border:var(--j-panel-border-width) solid var(--j-border-silver);background:var(--j-darkest);max-width:100%;min-height:420px;color:var(--j-white);box-shadow:0 var(--j-panel-south-edge-width) 0 0 var(--j-border-south), 0 calc(var(--j-surface-shadow-depth) + var(--j-panel-south-edge-width)) 0 0 #0000008c;flex-direction:column;display:flex;overflow:clip hidden}.j-ide__header{border-bottom:var(--j-panel-border-width) solid var(--j-panel-edge);background:var(--j-darkest);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.j-ide__header--compact{gap:8px;padding:8px 10px}.j-ide__header-copy{min-width:0}.j-ide__title{font-family:var(--j-font);color:var(--j-gold-text);text-shadow:var(--j-text-shadow);font-size:16px}.j-ide__subtitle{font-family:var(--j-font);color:var(--j-grey);text-shadow:var(--j-text-shadow);margin-top:2px;font-size:11px}.j-ide__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.j-ide-toolbar{border-bottom:var(--j-panel-border-width) solid var(--j-panel-edge);background:var(--j-dark-grey);align-items:center;gap:6px;min-width:0;padding:8px 4px 6px;display:flex}.j-ide-toolbar__tabs{flex:1;min-width:0;padding-bottom:3px;overflow:hidden}.j-ide-toolbar__action{flex-shrink:0}.j-ide__body{background:var(--j-darkest);flex:1;min-height:0;overflow:auto}.j-ide__body--map{overflow:hidden}.j-ide__results{padding:12px}.j-seed-input{gap:var(--j-space-xs);flex-direction:column;width:fit-content;max-width:100%;display:flex}.j-seed-input--normal{--j-seed-shell-bg:var(--j-dark-grey);--j-seed-shell-border:var(--j-border-silver);--j-seed-shell-border-bottom:var(--j-border-south);--j-seed-field-bg:var(--j-darkest)}.j-seed-input--dark{--j-seed-shell-bg:var(--j-darkest);--j-seed-shell-border:var(--j-panel-edge);--j-seed-shell-border-bottom:var(--j-black);--j-seed-field-bg:var(--j-darkest)}.j-seed-input--alt{--j-seed-shell-bg:var(--j-teal-grey);--j-seed-shell-border:var(--j-border-silver);--j-seed-shell-border-bottom:var(--j-panel-edge);--j-seed-field-bg:var(--j-dark-grey)}.j-seed-input__shell{border-radius:var(--j-radius-md);border:var(--j-panel-border-width) solid var(--j-seed-shell-border);background:var(--j-seed-shell-bg);width:fit-content;max-width:100%;box-shadow:0 var(--j-panel-border-width-heavy) 0 0 var(--j-seed-shell-border-bottom), 0 calc(var(--j-surface-shadow-depth) + var(--j-panel-border-width-heavy)) 0 0 #0000008c;cursor:text;padding:3px}.j-seed-input__shell[data-valid=true]{border-color:var(--j-green);border-bottom-color:var(--j-dark-green)}.j-seed-input__field{border-radius:calc(var(--j-radius-md) - 2px);border:var(--j-panel-border-width) solid var(--j-panel-edge);background:var(--j-seed-field-bg);width:calc(8ch + 16px);min-width:calc(8ch + 16px);max-width:calc(8ch + 16px);color:var(--j-gold-text);font-size:18px;font-family:var(--j-font);letter-spacing:.08em;text-align:center;text-shadow:var(--j-text-shadow);box-sizing:border-box;outline:none;padding:6px 8px 8px;font-weight:400}.j-seed-input__field::placeholder{color:var(--j-grey);letter-spacing:.08em;opacity:1;font-size:18px}.j-seed-input__field:focus{border-color:var(--j-gold)}.j-seed-spinner{gap:var(--j-space-xs);flex-direction:column;width:100%;max-width:100%;display:flex}.j-seed-spinner__meta{justify-content:space-between;align-items:center;gap:var(--j-space-sm);display:flex}.j-seed-spinner__label{font-family:var(--j-font);letter-spacing:.08em;color:var(--j-grey);text-shadow:var(--j-text-shadow);font-size:10px}.j-seed-spinner__row{align-items:end;gap:var(--j-space-sm);grid-template-columns:28px minmax(0,1fr) auto 28px;display:grid}.j-seed-spinner__row .j-seed-input{width:100%}.j-seed-spinner__row .j-seed-input__shell,.j-seed-spinner__row .j-seed-input__field{width:100%;min-width:0;max-width:none}.j-seed-spinner__arrow{align-self:stretch;width:28px;min-height:44px}.j-seed-spinner__arrow .j-btn__face{justify-content:center;align-items:center;height:100%;min-height:44px;padding:0;display:flex}.j-seed-spinner__copy{align-items:center;gap:4px;display:inline-flex}@media (prefers-reduced-motion:reduce){.j-panel:before,.j-inner-panel:before,.j-btn__face:before,.j-tab__btn:before,.j-footer__bar:before,.j-seed-input__shell:before,.j-tab__btn[data-active=true]{animation:none}}.j-aesthetic-selector{gap:var(--j-space-sm);flex-direction:column;display:flex}.j-aesthetic-selector__list{gap:var(--j-space-sm);flex-wrap:wrap;display:flex}.j-aesthetic-pill{border-radius:var(--j-radius-md);border:2px solid var(--j-panel-edge);background:var(--j-darkest);color:var(--j-grey);cursor:pointer;font-size:11px;font-family:var(--j-font);letter-spacing:.04em;text-shadow:var(--j-text-shadow);padding:4px 10px;font-weight:400;transition:border-color .1s,background .1s,color .1s;box-shadow:0 2px #0000004d}.j-aesthetic-pill:hover{border-color:var(--j-gold);color:var(--j-gold-text)}.j-aesthetic-pill[data-active=true]{border-color:var(--j-gold);color:var(--j-gold-text);box-shadow:0 0 0 1px var(--j-gold), 0 2px 0 0 #0000004d;background:#e4b64321}.j-showcase{background:var(--j-darkest);width:100%;height:100%;font-family:var(--j-font);color:var(--j-white);flex-direction:column;display:flex;overflow:hidden}.j-showcase__scroll{flex:1;min-height:0;padding:18px 14px 10px;overflow-y:auto}.j-showcase__wordmark{text-align:center;margin-bottom:18px}.j-showcase__wordmark-title{letter-spacing:3px;color:var(--j-gold-text);text-shadow:2px 2px #000c;font-size:32px;line-height:1}.j-showcase__wordmark-sub{letter-spacing:4px;color:var(--j-grey);text-shadow:var(--j-text-shadow);margin-top:4px;font-size:14px}.j-showcase__stats{background:var(--j-dark-grey);border-radius:var(--j-radius-md);border:2px solid var(--j-panel-edge);box-shadow:0 2px 0 var(--j-black);gap:var(--j-space-md);text-align:center;margin-bottom:var(--j-space-xl);grid-template-columns:1fr 1fr 1fr;padding:10px;display:grid}.j-showcase__stat-value{color:var(--j-gold-text);text-shadow:var(--j-text-shadow);font-size:16px}.j-showcase__stat-label{color:var(--j-grey);letter-spacing:2px;margin-top:2px;font-size:9px}.j-showcase__section-header{align-items:center;gap:var(--j-space-md);margin-bottom:var(--j-space-md);display:flex}.j-showcase__section-tag{letter-spacing:2px;color:var(--j-white);text-shadow:var(--j-text-shadow);border-radius:3px;padding:2px 8px;font-size:11px}.j-showcase__section-rule{border-radius:1px;flex:1;height:2px}.j-showcase__filter-list{gap:var(--j-space-md);margin-bottom:var(--j-space-xl);flex-direction:column;display:flex}.j-showcase__filter-card{background:var(--j-dark-grey);border-radius:var(--j-radius-md);box-shadow:0 2px 0 var(--j-black);cursor:pointer;align-items:center;gap:10px;padding:10px;display:flex}.j-showcase__filter-sprites{gap:2px;display:flex}.j-showcase__filter-sprite{justify-content:center;align-items:center;width:30px;height:40px;display:flex}.j-showcase__filter-info{flex:1;min-width:0}.j-showcase__filter-name{color:var(--j-white);letter-spacing:1px;text-shadow:var(--j-text-shadow);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.j-showcase__filter-author{color:var(--j-gold-text);letter-spacing:1px;margin-top:2px;font-size:9px}.j-showcase__filter-hits{text-align:right}.j-showcase__filter-hits-value{text-shadow:var(--j-text-shadow);font-size:14px}.j-showcase__filter-hits-label{color:var(--j-grey);letter-spacing:1px;font-size:8px}.j-showcase__recent{background:var(--j-dark-grey);border-radius:var(--j-radius-md);border:2px solid var(--j-panel-edge);box-shadow:0 2px 0 var(--j-black);color:var(--j-grey);letter-spacing:1px;padding:8px 10px;font-size:11px;line-height:1.7}.j-showcase__actions{border-top:2px solid var(--j-black);background:var(--j-dark-grey);flex-direction:column;gap:6px;padding:8px 10px 10px;display:flex}.j-footer__suits{align-items:center;display:inline-flex}.j-footer__suit-stage{vertical-align:middle;width:1.5em;height:1em;display:inline-block;position:relative}.j-footer__suit-char{opacity:0;justify-content:center;align-items:center;animation-duration:5s;animation-timing-function:ease-out;animation-iteration-count:infinite;animation-delay:0s;display:inline-flex;position:absolute;inset:0}.j-copy-row__label{letter-spacing:2px}.j-motely-badge{align-items:center;gap:6px;display:inline-flex}.j-motely-badge--chip{border-radius:var(--j-radius-sm);background:var(--j-darkest);border:1px solid var(--j-panel-edge);padding:3px 8px}.j-jamlyzer{gap:var(--j-space-md);padding:var(--j-space-md) 0;flex-direction:column;display:flex}.j-jamlyzer__control{align-items:end;gap:var(--j-space-md);grid-template-columns:minmax(0,1fr) auto;display:grid}.j-jamlyzer__result{text-align:center}.j-jamlyzer__result--match{background:var(--j-dark-green)}.j-jamlyzer__seed{margin-bottom:var(--j-space-sm);letter-spacing:3px;display:block}.j-filter-browser{box-sizing:border-box;gap:var(--j-space-md);grid-template-rows:minmax(0,1fr) auto;width:100%;height:100%;display:grid;overflow:hidden}.j-filter-browser__list-panel{min-height:0}.j-filter-browser__list-panel .j-panel__body{flex-direction:column;min-height:0;display:flex}.j-filter-browser__list{gap:var(--j-space-sm);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.j-filter-browser__item{border-radius:var(--j-radius-md);background:var(--j-darkest);width:100%;color:var(--j-white);box-shadow:0 var(--j-press-y) 0 var(--j-black);cursor:pointer;padding:var(--j-space-sm) var(--j-space-md);gap:var(--j-space-xs);text-align:left;border:none;grid-template-columns:minmax(0,1fr);display:grid}.j-filter-browser__item[data-active=true],.j-filter-browser__item:hover{background:var(--j-dark-red);box-shadow:0 var(--j-press-y) 0 var(--j-darkest)}.j-filter-browser__item-main{min-width:0}.j-filter-browser__deck-stake,.j-filter-browser__name{overflow-wrap:anywhere;display:block}.j-filter-browser__targets{gap:var(--j-space-xs);flex-wrap:wrap;display:flex}.j-filter-browser__target{border-radius:var(--j-radius-sm);background:var(--j-teal-grey);color:var(--j-white);font-family:var(--j-font);text-shadow:var(--j-text-shadow);padding:2px 5px;font-size:10px;display:inline-flex}.j-filter-browser__pager{padding-top:var(--j-space-md);flex-shrink:0;justify-content:center;display:flex}.j-filter-browser__page-chip{border-radius:var(--j-radius-md);background:var(--j-teal-grey);min-width:96px;padding:8px 16px}.j-filter-browser__details{flex-shrink:0;justify-content:center;min-height:160px}.j-filter-browser__details-body,.j-filter-browser__meta,.j-filter-browser__actions{align-items:center;gap:var(--j-space-sm);flex-direction:column;width:100%;display:flex}.j-filter-browser__targets--details{flex-flow:wrap;justify-content:center}.j-filter-browser__actions .j-btn{width:100%}.j-filter-browser__meta{opacity:.78;gap:var(--j-space-xs)}.j-picker{flex-direction:column;max-height:80vh;display:flex}.j-picker__section{border-bottom:1px solid var(--j-panel-edge);padding:8px 10px 6px}.j-picker__section-title{margin-bottom:var(--j-space-md);display:block}.j-picker__search{padding:6px 10px 4px}.j-picker__search-field{text-transform:none;letter-spacing:.04em;width:100%;min-width:0;max-width:none;padding:6px 10px;font-size:13px}.j-picker__hint{margin:4px 10px 6px;padding:6px 10px}.j-picker__grid{gap:var(--j-space-sm);flex:1;grid-template-columns:repeat(5,minmax(0,1fr));align-content:start;padding:12px 8px 18px;scroll-padding:12px 0 18px;display:grid;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0,#000 12px calc(100% - 18px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 12px calc(100% - 18px),#0000 100%)}.j-picker__grid--legendary{padding:0;overflow:visible;-webkit-mask-image:none;mask-image:none}.j-picker__item{border-radius:var(--j-radius-sm);cursor:pointer;flex-direction:column;align-items:center;gap:3px;padding:3px;display:flex;position:relative}.j-picker__item[data-muted=true]{opacity:.35}.j-picker__item-label{width:100%;color:var(--j-white);text-align:center;overflow-wrap:anywhere;line-height:1.05}.j-picker__pair{gap:var(--j-space-sm);flex-direction:column;display:flex}.j-picker__empty{padding:var(--j-space-xl);text-align:center;grid-column:1/-1}.j-story-phone{width:320px;height:568px}.j-story-panel-grid{width:320px}.j-story-card-grid{gap:var(--j-space-md);grid-template-columns:repeat(5,minmax(0,1fr));justify-items:center;display:grid}.j-panel-splitter{all:unset;touch-action:none;-webkit-user-select:none;user-select:none;background:var(--j-teal-grey);flex:none;display:block;position:relative}.j-panel-splitter:before{content:"";pointer-events:none;background:#ffffff4d;border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.j-panel-splitter[data-orientation=vertical]{cursor:col-resize;width:8px}.j-panel-splitter[data-orientation=vertical]:before{box-shadow:0 -8px #ffffff4d,0 8px #ffffff4d}.j-panel-splitter[data-orientation=horizontal]{cursor:row-resize;height:8px}.j-panel-splitter[data-orientation=horizontal]:before{box-shadow:-8px 0 #ffffff4d,8px 0 #ffffff4d}.j-panel-splitter:focus-visible{outline:2px solid var(--j-gold);outline-offset:2px}.j-panel-splitter-story{display:flex}.j-panel-splitter-story__shell{width:100%}.j-panel-splitter-story__shell .j-panel__body{gap:var(--j-space-md);flex-direction:column;min-height:0;display:flex}.j-panel-splitter-story__header{justify-content:space-between;align-items:center;gap:var(--j-space-md);display:flex}.j-panel-splitter-story__body{border-radius:var(--j-radius-md);background:var(--j-darkest);height:430px;min-height:0;display:flex;overflow:hidden}.j-panel-splitter-story__pane{min-width:0;padding:var(--j-space-md);flex:1 1 0;overflow:auto}.j-panel-splitter-story__pane--results{gap:var(--j-space-sm);flex-direction:column;display:flex}.j-panel-splitter-story__label{margin-bottom:var(--j-space-sm);display:block}.j-panel-splitter-story__result-row{justify-content:space-between;align-items:center;gap:var(--j-space-sm);padding:var(--j-space-sm) var(--j-space-md);border-radius:var(--j-radius-sm);background:var(--j-teal-grey);display:flex}.j-text--dance-container{display:inline-flex}.j-font-dance-char{animation:3s ease-in-out infinite j-font-dance;display:inline-block}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}.j-juice-hover{transition:transform .2s cubic-bezier(.175,.885,.32,1.275)}.j-juice-hover:hover{z-index:5;transform:translateY(-2px)}
2
2
  /*$vite$:1*/
@@ -8,17 +8,15 @@ export declare const JimboPanel: React.MemoExoticComponent<({ children, classNam
8
8
  export type JimboInnerPanelProps = React.HTMLAttributes<HTMLDivElement>;
9
9
  export declare const JimboInnerPanel: React.MemoExoticComponent<({ children, className, style, ...props }: JimboInnerPanelProps) => import("react/jsx-runtime").JSX.Element>;
10
10
  export type JimboTone = 'orange' | 'red' | 'blue' | 'green' | 'tarot' | 'planet' | 'spectral' | 'grey';
11
- export interface JimboButtonProps {
11
+ export interface JimboButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {
12
12
  tone?: JimboTone;
13
13
  size?: 'xs' | 'sm' | 'md' | 'lg';
14
14
  fullWidth?: boolean;
15
15
  disabled?: boolean;
16
16
  onClick?: () => void;
17
- style?: React.CSSProperties;
18
- className?: string;
19
17
  children?: React.ReactNode;
20
18
  }
21
- export declare function JimboButton({ tone, size, fullWidth, disabled, onClick, style, className, children, }: JimboButtonProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function JimboButton({ tone, size, fullWidth, disabled, onClick, style, className, children, ...buttonProps }: JimboButtonProps): import("react/jsx-runtime").JSX.Element;
22
20
  export declare function JimboBackButton({ onClick }: {
23
21
  onClick?: () => void;
24
22
  }): import("react/jsx-runtime").JSX.Element;
package/dist/ui.d.ts CHANGED
@@ -24,6 +24,7 @@ export * from './ui/ide/JamlEditor.js';
24
24
  export { default as JamlEditor } from './ui/ide/JamlEditor.js';
25
25
  export * from './ui/JimboIconButton.js';
26
26
  export * from './ui/JimboInputModal.js';
27
+ export * from './ui/JimboTextInput.js';
27
28
  export * from './ui/JimboPanelSpinner.js';
28
29
  export * from './ui/JimboSelect.js';
29
30
  export * from './ui/PanelSplitter.js';
package/dist/ui.js CHANGED
@@ -1,3 +1,3 @@
1
- import { A as e, B as t, C as n, D as r, E as i, F as a, I as o, L as s, M as c, N as l, O as u, P as d, R as f, S as p, T as m, _ as h, a as g, b as _, c as v, d as y, f as b, g as x, h as S, i as C, j as w, k as T, l as E, m as D, n as O, o as k, p as A, r as j, s as M, t as N, u as P, v as F, w as I, x as L, y as R, z } from "./chunks/ui-BEtq_JNg.js";
2
- import { n as B, r as V, t as H } from "./chunks/tokens-B65Fzble.js";
3
- export { f as DeckSprite, H as JIMBO_ANIMATIONS, k as JamlEditor, F as JimboApp, R as JimboAppFooter, _ as JimboAppScroll, c as JimboBackButton, n as JimboBackground, T as JimboBadge, I as JimboBalatroFooter, l as JimboButton, L as JimboCodeBlock, B as JimboColorOption, P as JimboCopyRow, m as JimboFilterBar, u as JimboFlankNav, r as JimboFloating, g as JimboIconButton, b as JimboInfoCard, A as JimboInfoCardAside, D as JimboInfoCardBody, S as JimboInfoCardSub, x as JimboInfoCardTitle, d as JimboInnerPanel, C as JimboInputModal, M as JimboInset, a as JimboModal, o as JimboPanel, j as JimboPanelSpinner, h as JimboSectionHeader, O as JimboSelect, z as JimboSprite, v as JimboStatGrid, e as JimboTabs, s as JimboText, i as JimboToggleList, p as JimboTooltip, w as JimboVerticalTabs, E as JimboWordmark, N as PanelSplitter, y as Showcase, t as StakeSprite, V as withAlpha };
1
+ import { A as e, B as t, C as n, D as r, E as i, F as a, I as o, L as s, M as c, N as l, O as u, P as d, R as f, S as p, T as m, V as h, _ as g, a as _, b as v, c as y, d as b, f as x, g as S, h as C, i as w, j as T, k as E, l as D, m as O, n as k, o as A, p as j, r as M, s as N, t as P, u as F, v as I, w as L, x as R, y as z, z as B } from "./chunks/ui-D_9HO9OO.js";
2
+ import { n as V, r as H, t as U } from "./chunks/tokens-Qrhlekc4.js";
3
+ export { B as DeckSprite, U as JIMBO_ANIMATIONS, N as JamlEditor, z as JimboApp, v as JimboAppFooter, R as JimboAppScroll, l as JimboBackButton, L as JimboBackground, e as JimboBadge, m as JimboBalatroFooter, d as JimboButton, p as JimboCodeBlock, V as JimboColorOption, b as JimboCopyRow, i as JimboFilterBar, E as JimboFlankNav, u as JimboFloating, A as JimboIconButton, j as JimboInfoCard, O as JimboInfoCardAside, C as JimboInfoCardBody, S as JimboInfoCardSub, g as JimboInfoCardTitle, a as JimboInnerPanel, w as JimboInputModal, y as JimboInset, o as JimboModal, s as JimboPanel, M as JimboPanelSpinner, I as JimboSectionHeader, k as JimboSelect, t as JimboSprite, D as JimboStatGrid, T as JimboTabs, f as JimboText, _ as JimboTextInput, r as JimboToggleList, n as JimboTooltip, c as JimboVerticalTabs, F as JimboWordmark, P as PanelSplitter, x as Showcase, h as StakeSprite, H as withAlpha };