jaml-ui 4.3.1 → 4.6.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 (104) hide show
  1. package/assets/jammy-seed-mascot.png +0 -0
  2. package/dist/assets/8BitDeck-B09C1jGy.png +0 -0
  3. package/dist/assets/BlindChips-Bnvhn76w.png +0 -0
  4. package/dist/assets/Boosters-Bqv_YhIn.png +0 -0
  5. package/dist/assets/Editions-B3YPqPOl.png +0 -0
  6. package/dist/assets/Enhancers-DhIlUuTX.png +0 -0
  7. package/dist/assets/Jokers-1egXSFFQ.png +0 -0
  8. package/dist/assets/Tarots-DkrFk7iW.png +0 -0
  9. package/dist/assets/Vouchers-Cdp8BeSE.png +0 -0
  10. package/dist/assets/balatro-stake-chips-BdO-bw7c.png +0 -0
  11. package/dist/assets/jammy-seed-mascot-BdoW3O33.png +0 -0
  12. package/dist/assets/m6x11plus-C8RqtTtG.ttf +0 -0
  13. package/dist/assets/stickers-B6y5vEyc.png +0 -0
  14. package/dist/assets/tags-BdxcVWR4.png +0 -0
  15. package/dist/chunks/JimboSwipeDeck-DbzWak3V.js +2051 -0
  16. package/dist/chunks/JimboSwipeDeck-DbzWak3V.js.map +1 -0
  17. package/dist/chunks/spriteMapper-gImEz0wa.js +501 -0
  18. package/dist/chunks/spriteMapper-gImEz0wa.js.map +1 -0
  19. package/dist/components/DailyRitualView.d.ts +17 -0
  20. package/dist/components/DeckStakePicker.d.ts +12 -0
  21. package/dist/components/JamlIde.d.ts +9 -0
  22. package/dist/components/JamlIdeToolbar.d.ts +2 -5
  23. package/dist/components/JamlIdeVisual.d.ts +30 -0
  24. package/dist/components/JamlMapPreview.d.ts +12 -0
  25. package/dist/components/Jamlyzer.d.ts +14 -2
  26. package/dist/components/JamlyzerBulk.d.ts +5 -4
  27. package/dist/components/JamlyzerView.d.ts +1 -12
  28. package/dist/components/SeedLab.d.ts +12 -0
  29. package/dist/components/jamlSeedUtils.d.ts +1 -0
  30. package/dist/components/jamlyzer/JamlyzerAnteDetails.d.ts +4 -0
  31. package/dist/components/jamlyzer/JamlyzerErraticDeck.d.ts +2 -2
  32. package/dist/components/jamlyzer/JamlyzerPackSection.d.ts +1 -5
  33. package/dist/components/jamlyzer/JamlyzerPulls.d.ts +2 -2
  34. package/dist/components/jamlyzer/JamlyzerSeedCard.d.ts +21 -0
  35. package/dist/components/jamlyzer/JamlyzerTape.d.ts +10 -0
  36. package/dist/components/jamlyzer/highlight.d.ts +3 -3
  37. package/dist/core.js +2 -2
  38. package/dist/decode/motelyItemDecoder.d.ts +1 -0
  39. package/dist/decode/motelySprite.d.ts +10 -13
  40. package/dist/decode/motelySpriteLut.generated.d.ts +2 -0
  41. package/dist/index.d.ts +13 -1
  42. package/dist/index.js +20903 -17732
  43. package/dist/index.js.map +1 -1
  44. package/dist/json-render/JimboJsonRenderer.d.ts +21 -0
  45. package/dist/json-render/catalog.d.ts +304 -180
  46. package/dist/json-render/index.d.ts +5 -30
  47. package/dist/json-render/registry.d.ts +2 -12
  48. package/dist/lib/daily/ritual.d.ts +43 -0
  49. package/dist/lib/jaml/{parseClauses.d.ts → jaml.d.ts} +17 -13
  50. package/dist/lib/jaml/rarity.d.ts +53 -0
  51. package/dist/lib/jaml/rarityData.generated.d.ts +727 -0
  52. package/dist/ui/JimboApp.d.ts +8 -6
  53. package/dist/ui/JimboBackground.d.ts +5 -13
  54. package/dist/ui/JimboBox.d.ts +16 -0
  55. package/dist/ui/JimboButton.d.ts +1 -1
  56. package/dist/ui/JimboCanvas.d.ts +12 -0
  57. package/dist/ui/JimboDock.d.ts +21 -0
  58. package/dist/ui/JimboInline.d.ts +11 -0
  59. package/dist/ui/JimboLink.d.ts +11 -0
  60. package/dist/ui/JimboMascot.d.ts +51 -5
  61. package/dist/ui/JimboOrbitalMenu.d.ts +81 -9
  62. package/dist/ui/JimboPanelSpinner.d.ts +14 -0
  63. package/dist/ui/JimboPicker.d.ts +1 -1
  64. package/dist/ui/JimboSeedCopyChip.d.ts +1 -2
  65. package/dist/ui/JimboShopBelt.d.ts +9 -0
  66. package/dist/ui/dockTree.d.ts +31 -0
  67. package/dist/ui/hooks.d.ts +1 -1
  68. package/dist/ui/jammySeedMascotImage.d.ts +1 -1
  69. package/dist/ui/jimbo.css +1 -1
  70. package/dist/ui/orbitalLayout.d.ts +149 -0
  71. package/dist/ui/orbitalMenuStore.d.ts +70 -0
  72. package/dist/ui/tokens.d.ts +9 -36
  73. package/dist/ui/useMotionPreference.d.ts +19 -0
  74. package/dist/ui.d.ts +20 -2
  75. package/dist/ui.js +77 -30
  76. package/dist/vocab.d.ts +26 -0
  77. package/package.json +36 -40
  78. package/README.md +0 -78
  79. package/assets/fonts/README.md +0 -14
  80. package/dist/chunks/JimboSwipeDeck-D2AVuZep.js +0 -967
  81. package/dist/chunks/JimboSwipeDeck-D2AVuZep.js.map +0 -1
  82. package/dist/chunks/motelyItemDecoder-Cb-RjvQ0.js +0 -692
  83. package/dist/chunks/motelyItemDecoder-Cb-RjvQ0.js.map +0 -1
  84. package/dist/chunks/spriteMapper-Dfr2_j0_.js +0 -501
  85. package/dist/chunks/spriteMapper-Dfr2_j0_.js.map +0 -1
  86. package/dist/components/jamlyzer/JamlyzerRail.d.ts +0 -14
  87. package/dist/json-render/builders/analyzer.d.ts +0 -23
  88. package/dist/json-render/builders/encyclopedia.d.ts +0 -14
  89. package/dist/json-render/builders/search.d.ts +0 -24
  90. package/dist/json-render/components/domain.d.ts +0 -59
  91. package/dist/json-render/components/game.d.ts +0 -18
  92. package/dist/json-render/components/layout.d.ts +0 -47
  93. package/dist/json-render/components/mascot.d.ts +0 -23
  94. package/dist/json-render/components/reference.d.ts +0 -39
  95. package/dist/json-render/engine.d.ts +0 -38
  96. package/dist/json-render/knowledge/bosses.d.ts +0 -18
  97. package/dist/json-render/knowledge/decks.d.ts +0 -22
  98. package/dist/json-render/knowledge/jokers.d.ts +0 -23
  99. package/dist/json-render/knowledge/synergies.d.ts +0 -21
  100. package/dist/lib/motely/jamlParse.d.ts +0 -4
  101. package/dist/lib/motely/runtime.d.ts +0 -1
  102. package/dist/motely.d.ts +0 -4
  103. package/dist/motely.js +0 -84
  104. package/dist/motely.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  export type JamlClauseKind = "must" | "should" | "mustNot";
2
2
  export type JamlItemType = "joker" | "voucher" | "boss" | "tag" | "tarot" | "planet" | "spectral" | "consumable" | "standardcard" | "deck" | "stake" | "seed" | "any" | "unknown";
3
- export interface ParsedJamlClause {
3
+ export interface JamlClause {
4
4
  kind: JamlClauseKind;
5
5
  itemType: JamlItemType;
6
6
  /** Exact names as written in JAML (e.g. "WeeJoker"). */
@@ -14,22 +14,26 @@ export interface ParsedJamlClause {
14
14
  /** Raw clause object for advanced consumers. */
15
15
  raw: Record<string, unknown>;
16
16
  }
17
- export interface ParsedJamlFilters {
17
+ export interface JamlFilter {
18
18
  deck?: string;
19
19
  stake?: string;
20
- must: ParsedJamlClause[];
21
- should: ParsedJamlClause[];
22
- mustNot: ParsedJamlClause[];
23
- all: ParsedJamlClause[];
20
+ must: JamlClause[];
21
+ should: JamlClause[];
22
+ mustNot: JamlClause[];
23
+ all: JamlClause[];
24
24
  }
25
- export declare function parseJamlClauses(jamlText: string): ParsedJamlFilters;
25
+ /** Pure line-based JAML parser without generic YAML library dependencies */
26
+ export declare function parseJamlDocument(jamlText: string): Record<string, unknown>;
27
+ export declare function parseJaml(jamlText: string): JamlFilter;
28
+ export declare function highlightClassForKind(kind: JamlClauseKind): string;
26
29
  export declare function splitCamelCase(key: string): string;
27
30
  export declare function normalizeName(name: string): string;
28
- export declare function matchClauseToItem(clause: ParsedJamlClause, itemType: JamlItemType, itemName: string): boolean;
29
- export declare function matchClauseToAnte(clause: ParsedJamlClause, ante: number): boolean;
30
- export declare function highlightClassForKind(kind: JamlClauseKind): string;
31
- /** Convenience matcher that maps the coarse decoder category to a JAML item type. */
32
- export declare function matchMotelyItemToClause(item: {
31
+ export declare function matchClauseToItem(clause: JamlClause, itemType: string, itemName: string): boolean;
32
+ export declare function matchClauseToAnte(clause: JamlClause, ante: number): boolean;
33
+ export declare function matchMotelyItemToClause(decodedItem: {
33
34
  category?: string;
35
+ kind?: string;
34
36
  displayName?: string;
35
- }, clause: ParsedJamlClause): boolean;
37
+ name?: string;
38
+ enumKey?: string;
39
+ }, clause: JamlClause): boolean;
@@ -0,0 +1,53 @@
1
+ export type RarityClauseKind = "must" | "should" | "mustNot";
2
+ export type RaritySeverity = "error" | "warn" | "flag" | "info";
3
+ export interface RarityFlag {
4
+ id: string;
5
+ severity: RaritySeverity;
6
+ reason: string;
7
+ }
8
+ export interface ClauseRarityEstimate {
9
+ kind: RarityClauseKind;
10
+ /** Engine discriminator as written (e.g. "legendaryJoker"). */
11
+ discriminator: string;
12
+ names: string[];
13
+ /** Ante window used for the estimate (defaulted to 1-8 when unspecified). */
14
+ antes: number[];
15
+ label: string;
16
+ /** Probability a uniformly random seed satisfies this clause. */
17
+ pPerSeed: number;
18
+ /** 1 / pPerSeed; null when the clause is certain or impossible. */
19
+ oneIn: number | null;
20
+ /** Expected hit count per seed before the ≥min tail (diagnostic). */
21
+ lambda: number;
22
+ flags: RarityFlag[];
23
+ /** One-line description of the math used, for UI tooltips. */
24
+ model: string;
25
+ raw: Record<string, unknown>;
26
+ }
27
+ export interface JamlRarityEstimate {
28
+ deck?: string;
29
+ stake?: string;
30
+ clauses: ClauseRarityEstimate[];
31
+ combined: {
32
+ /** Naive product over must/mustNot clauses (should clauses rank, not gate). */
33
+ pPerSeed: number;
34
+ oneIn: number | null;
35
+ /** The independence assumption is coarse — treat oneIn as an order of magnitude. */
36
+ errorBand: "±10x";
37
+ /** pPerSeed × the 35^8 length-8 keyspace motely-wasm batches cover. */
38
+ expectedMatchesLength8: number;
39
+ };
40
+ flags: RarityFlag[];
41
+ }
42
+ export declare function estimateJamlRarity(jaml: string): JamlRarityEstimate;
43
+ /** "1 in ~1.8B" style formatting; p=0 renders as unsatisfiable infinity. */
44
+ export declare function formatOneIn(oneIn: number | null): string;
45
+ /**
46
+ * Expected seconds to find `targetMatches` seeds at a MEASURED throughput.
47
+ * Benchmark seedsPerSecond against a real batch on the target hardware first —
48
+ * browser (WASM SIMD128) and native (AVX-512) rates differ by orders of
49
+ * magnitude, so this module never supplies a default.
50
+ */
51
+ export declare function estimateEtaSeconds(pPerSeed: number, seedsPerSecond: number, targetMatches?: number): number;
52
+ /** "≈3d 4h" / "≈12min" style duration formatting for ETA display. */
53
+ export declare function formatEta(seconds: number): string;