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
@@ -41,4 +41,13 @@ export interface JamlIdeProps {
41
41
  }
42
42
  export type { JamlVisualFilter } from './JamlIdeVisual.js';
43
43
  export type { JamlVisualClause, JamlZone } from './JamlIdeVisual.js';
44
+ export declare function TallyBar({ value, max }: {
45
+ value: number;
46
+ max: number;
47
+ }): React.JSX.Element;
48
+ export declare function ResultsView({ results, jaml, onVerify, }: {
49
+ results: JamlIdeSearchResult[];
50
+ jaml: string;
51
+ onVerify?: () => void;
52
+ }): React.JSX.Element;
44
53
  export declare function JamlIde({ jaml, defaultJaml, onChange, defaultMode, searchResults, className, style, title, subtitle, compactHeader, actions, codePlaceholder, onSearch, isSearching, showLoadFileButton, onLoadFile, visualFilter, onVisualFilterChange, }: JamlIdeProps): React.JSX.Element;
@@ -1,15 +1,12 @@
1
1
  import { default as React } from 'react';
2
- export type JamlIdeMode = "visual" | "code" | "map" | "results" | "jamlyzer";
2
+ export type JamlIdeMode = "visual" | "code" | "inspect";
3
3
  export interface JamlIdeToolbarProps {
4
4
  mode: JamlIdeMode;
5
5
  onModeChange: (mode: JamlIdeMode) => void;
6
- resultCount?: number;
7
- showResultsTab?: boolean;
8
- showJamlyzerTab?: boolean;
9
6
  className?: string;
10
7
  onSearch?: () => void;
11
8
  isSearching?: boolean;
12
9
  onLoadFile?: () => void;
13
10
  isLoadingFile?: boolean;
14
11
  }
15
- export declare function JamlIdeToolbar({ mode, onModeChange, resultCount, showResultsTab, showJamlyzerTab, className, onSearch, isSearching, onLoadFile, isLoadingFile, }: JamlIdeToolbarProps): React.JSX.Element;
12
+ export declare function JamlIdeToolbar({ mode, onModeChange, className, onSearch, isSearching, onLoadFile, isLoadingFile, }: JamlIdeToolbarProps): React.JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { default as React } from 'react';
2
+ import { SpriteSheetType } from '../sprites/spriteMapper.js';
2
3
  export type JamlZone = "must" | "should" | "mustnot";
3
4
  export interface JamlVisualClause {
4
5
  id: string;
@@ -28,4 +29,33 @@ export interface JamlIdeVisualProps {
28
29
  /** Tap the "?" mystery tile to add a new clause to a zone (Pass 2 wires this to the cascade picker). */
29
30
  onAddClause?: (zone: JamlZone) => void;
30
31
  }
32
+ export declare function clauseSpriteSheet(type: string): SpriteSheetType | undefined;
33
+ export declare function ClauseSprite({ clause, size }: {
34
+ clause: JamlVisualClause;
35
+ size?: number;
36
+ }): React.JSX.Element | null;
37
+ export declare function ClauseCard({ clause, zone, onRemove, onEdit, onDragStart, }: {
38
+ clause: JamlVisualClause;
39
+ zone: JamlZone;
40
+ onRemove: () => void;
41
+ onEdit: () => void;
42
+ onDragStart: (e: React.MouseEvent | React.TouchEvent, clause: JamlVisualClause, zone: JamlZone) => void;
43
+ }): React.JSX.Element;
44
+ export declare function MysteryAddTile({ zone, onTap }: {
45
+ zone: JamlZone;
46
+ onTap?: () => void;
47
+ }): React.JSX.Element;
48
+ export declare function ZoneRail({ zone, clauses, onAdd, onRemove, onEdit, onDragStart, dropTarget, }: {
49
+ zone: JamlZone;
50
+ clauses: JamlVisualClause[];
51
+ onAdd?: () => void;
52
+ onRemove: (id: string) => void;
53
+ onEdit: (clause: JamlVisualClause) => void;
54
+ onDragStart: (e: React.MouseEvent | React.TouchEvent, clause: JamlVisualClause, zone: JamlZone) => void;
55
+ dropTarget?: boolean;
56
+ }): React.JSX.Element;
57
+ export declare function TopMatter({ filter, onChange, }: {
58
+ filter: JamlVisualFilter;
59
+ onChange: (filter: JamlVisualFilter) => void;
60
+ }): React.JSX.Element;
31
61
  export declare function JamlIdeVisual({ filter, onChange, onEditClause, onAddClause }: JamlIdeVisualProps): React.JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { default as React } from 'react';
2
+ import { JamlPreviewItem, JamlPreviewSection } from '../utils/jamlMapPreview.js';
2
3
  export interface JamlMapPreviewProps {
3
4
  /** The raw JAML string to parse and visualize. */
4
5
  jaml: string;
@@ -9,4 +10,15 @@ export interface JamlMapPreviewProps {
9
10
  /** Reduces padding and sizes for sidebar/explorer usage. */
10
11
  compact?: boolean;
11
12
  }
13
+ export declare function ClausePill({ item, glow, matchCount }: {
14
+ item: JamlPreviewItem;
15
+ glow: string;
16
+ matchCount: number;
17
+ }): React.JSX.Element;
18
+ export declare function ZoneRail({ zone, items, matchMap, compact }: {
19
+ zone: JamlPreviewSection;
20
+ items: JamlPreviewItem[];
21
+ matchMap: Record<string, number>;
22
+ compact?: boolean;
23
+ }): React.JSX.Element;
12
24
  export declare function JamlMapPreview({ jaml, className, emptyMessage, tallyColumns, tallyLabels, compact, }: JamlMapPreviewProps): React.JSX.Element;
@@ -1,8 +1,20 @@
1
1
  import { default as React } from 'react';
2
+ import { MotelyJamlyzerSeedResult, MotelyDeck, MotelyStake } from 'motely-wasm';
2
3
  export interface JamlyzerProps {
3
4
  /** Full JAML document. Seeds come from the top-level `seeds:` array via Motely. */
4
- jaml: string;
5
+ jaml?: string;
6
+ /** Direct in-memory seeds array or pre-analyzed seed results. */
7
+ seeds?: readonly (string | MotelyJamlyzerSeedResult)[];
8
+ /** Pre-analyzed seed results. */
9
+ results?: readonly MotelyJamlyzerSeedResult[];
10
+ deck?: MotelyDeck | number;
11
+ stake?: MotelyStake | number;
12
+ maxAnte?: number;
13
+ defaultSelectedSeed?: string;
14
+ onSelectSeed?: (seed: string) => void;
5
15
  className?: string;
6
16
  style?: React.CSSProperties;
7
17
  }
8
- export declare function Jamlyzer({ jaml, className, style }: JamlyzerProps): React.JSX.Element;
18
+ export type JamlyzerSortMode = "highest-score" | "ante1-hits" | "alpha";
19
+ export type JamlyzerFilterMode = "all" | "matches" | "pinned";
20
+ export declare function Jamlyzer({ jaml, seeds: seedsProp, results: resultsProp, deck, stake, maxAnte, defaultSelectedSeed, onSelectSeed, className, style, }: JamlyzerProps): React.JSX.Element;
@@ -1,20 +1,21 @@
1
1
  import { MotelyJamlyzerSeedResult } from 'motely-wasm';
2
- import { ParsedJamlClause } from '../lib/jaml/parseClauses.js';
2
+ import { JamlClause } from '../lib/jaml/jaml.js';
3
3
  export interface JamlyzerBulkProps {
4
4
  results: MotelyJamlyzerSeedResult[];
5
5
  /** Raw JAML text; used to derive clause identities if `clauses` is not provided. */
6
6
  jamlText?: string;
7
7
  /** Pre-parsed clauses (alternative to `jamlText`). */
8
- clauses?: ParsedJamlClause[];
8
+ clauses?: JamlClause[];
9
9
  /** Per-seed per-should-clause tally values, in JAML order. */
10
10
  tallies?: (number[] | Int32Array)[];
11
11
  /** Optional deck/stake applied to every seed in the bulk view. */
12
12
  deck?: number;
13
13
  stake?: number;
14
+ pageSize?: number;
14
15
  }
15
16
  export declare function ClauseHitPanel({ clause, hitAntes, tally, }: {
16
- clause: ParsedJamlClause;
17
+ clause: JamlClause;
17
18
  hitAntes: number[];
18
19
  tally?: number;
19
20
  }): import("react").JSX.Element;
20
- export declare function JamlyzerBulk({ results, jamlText, clauses: clausesProp, tallies, deck, stake }: JamlyzerBulkProps): import("react").JSX.Element;
21
+ export declare function JamlyzerBulk({ results, jamlText, clauses: clausesProp, tallies, deck, stake, pageSize, }: JamlyzerBulkProps): import("react").JSX.Element;
@@ -1,19 +1,8 @@
1
- import { default as React } from 'react';
2
1
  import { MotelyJamlyzerSeedResult, MotelyDeck, MotelyStake } from 'motely-wasm';
3
- import { ParsedJamlClause } from '../lib/jaml/parseClauses.js';
4
2
  export interface JamlyzerViewProps {
5
3
  result: MotelyJamlyzerSeedResult;
6
4
  deck?: MotelyDeck;
7
5
  stake?: MotelyStake;
8
- /** Maximum ante number to display in the rail. Antes 0–39 are valid in Balatro. */
9
6
  maxAnte?: number;
10
- /** Raw JAML text used to derive clause identities for highlighting. */
11
- jamlText?: string;
12
- /** Pre-parsed clauses (alternative to `jamlText`). */
13
- clauses?: ParsedJamlClause[];
14
- /** Per-should-clause tally values, in JAML order. */
15
- tallies?: number[] | Int32Array;
16
- /** Called when the user hovers a clause in the scoreboard. */
17
- onHoverClause?: (clause: ParsedJamlClause | null) => void;
18
7
  }
19
- export declare function JamlyzerView({ result, deck, stake, maxAnte: maxAnteProp, jamlText, clauses: clausesProp, tallies, onHoverClause, }: JamlyzerViewProps): React.JSX.Element;
8
+ export declare function JamlyzerView({ result, deck, stake, maxAnte: maxAnteProp, }: JamlyzerViewProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export declare const STARTER_JAML = "must:\n - joker: Blueprint\n antes: [1]\nshould:\n - voucher: Telescope\n antes: [1]\n";
2
+ export declare const JAMLYZE_JAML = "seeds:\n - WEEJOKER\nmust:\n - joker: Blueprint\n antes: [1]\nshould:\n - voucher: Telescope\n antes: [1]\n";
3
+ export type SeedHit = {
4
+ seed: string;
5
+ score: number;
6
+ };
7
+ export declare function LiveJamlIde({ defaultJaml }: {
8
+ defaultJaml?: string;
9
+ }): import("react").JSX.Element;
10
+ export declare function SeedLab({ defaultJaml }: {
11
+ defaultJaml?: string;
12
+ }): import("react").JSX.Element;
@@ -1 +1,2 @@
1
1
  export declare function normalizeJamlSeed(seed: string): string;
2
+ export declare function randomLength8Seeds(count: number): string[];
@@ -1,4 +1,8 @@
1
1
  import { MotelyJamlyzerAnteResult } from 'motely-wasm';
2
+ export declare function LabeledItem({ value, scale }: {
3
+ value: number;
4
+ scale: number;
5
+ }): import("react").JSX.Element;
2
6
  export declare function ResolvedItem({ value, scale }: {
3
7
  value: number;
4
8
  scale: number;
@@ -1,8 +1,8 @@
1
1
  import { MotelyItem } from 'motely-wasm';
2
- import { ParsedJamlClause } from '../../lib/jaml/parseClauses.js';
2
+ import { JamlClause } from '../../lib/jaml/jaml.js';
3
3
  export interface JamlyzerErraticDeckProps {
4
4
  cards: MotelyItem[];
5
- matches: Map<string, ParsedJamlClause[]>;
5
+ matches: Map<string, JamlClause[]>;
6
6
  }
7
7
  /** The randomized starting deck when playing the Erratic deck. */
8
8
  export declare function JamlyzerErraticDeck({ cards, matches }: JamlyzerErraticDeckProps): import("react").JSX.Element | null;
@@ -1,9 +1,5 @@
1
1
  import { MotelyJamlyzerAnteResult } from 'motely-wasm';
2
- import { ParsedJamlClause } from '../../lib/jaml/parseClauses.js';
3
2
  export interface JamlyzerPackSectionProps {
4
3
  pack: MotelyJamlyzerAnteResult["packs"][number];
5
- ante: number;
6
- matches: Map<string, ParsedJamlClause[]>;
7
4
  }
8
- /** One booster pack: name + card count, then the cards inside. */
9
- export declare function JamlyzerPackSection({ pack, ante, matches }: JamlyzerPackSectionProps): import("react").JSX.Element;
5
+ export declare function JamlyzerPackSection({ pack }: JamlyzerPackSectionProps): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  import { MotelyJamlyzerAnteResult } from 'motely-wasm';
2
- import { ParsedJamlClause } from '../../lib/jaml/parseClauses.js';
2
+ import { JamlClause } from '../../lib/jaml/jaml.js';
3
3
  export interface JamlyzerPullsProps {
4
4
  ante: MotelyJamlyzerAnteResult;
5
- matches: Map<string, ParsedJamlClause[]>;
5
+ matches: Map<string, JamlClause[]>;
6
6
  }
7
7
  /** Extra-card pulls (Judgement, Wraith, tags, …) and the voucher sequence. */
8
8
  export declare function JamlyzerPulls({ ante, matches }: JamlyzerPullsProps): import("react").JSX.Element | null;
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ import { MotelyJamlyzerSeedResult } from 'motely-wasm';
3
+ import { JamlClause } from '../../lib/jaml/jaml.js';
4
+ export interface JamlyzerSeedCardProps {
5
+ result: MotelyJamlyzerSeedResult;
6
+ selected?: boolean;
7
+ pinned?: boolean;
8
+ onSelect: () => void;
9
+ onTogglePin?: (e: React.MouseEvent) => void;
10
+ maxScore?: number;
11
+ clauses?: JamlClause[];
12
+ className?: string;
13
+ style?: React.CSSProperties;
14
+ }
15
+ export interface SeedMilestoneHit {
16
+ ante: number;
17
+ label: string;
18
+ tone: "green" | "orange" | "purple" | "blue" | "red";
19
+ }
20
+ export declare function extractSeedMilestones(result: MotelyJamlyzerSeedResult, clauses?: JamlClause[], maxMilestones?: number): SeedMilestoneHit[];
21
+ export declare function JamlyzerSeedCard({ result, selected, pinned, onSelect, onTogglePin, clauses, className, style, }: JamlyzerSeedCardProps): React.JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ export interface JamlyzerTapeProps {
3
+ /** A JAML filter. Its `seeds:` list must name exactly one seed. */
4
+ jaml: string;
5
+ /** Rolls fetched per page. The engine's own default is 20. */
6
+ pageSize?: number;
7
+ /** Stop after this many rolls so a runaway scroll can't page forever. */
8
+ maxRolls?: number;
9
+ }
10
+ export declare function JamlyzerTape({ jaml, pageSize, maxRolls, }: JamlyzerTapeProps): React.JSX.Element;
@@ -1,5 +1,5 @@
1
- import { ParsedJamlClause, JamlItemType } from '../../lib/jaml/parseClauses.js';
1
+ import { JamlClause, JamlItemType } from '../../lib/jaml/jaml.js';
2
2
  import { MotelyRenderableCategory } from '../../decode/motelyItemDecoder.js';
3
3
  export declare function itemTypeOfCategory(category: MotelyRenderableCategory): JamlItemType;
4
- export declare function buildMatchMap(clauses: ParsedJamlClause[]): Map<string, ParsedJamlClause[]>;
5
- export declare function selectHighlight(itemType: JamlItemType, name: string, ante: number, matches: Map<string, ParsedJamlClause[]>): string | undefined;
4
+ export declare function buildMatchMap(clauses: JamlClause[]): Map<string, JamlClause[]>;
5
+ export declare function selectHighlight(itemType: JamlItemType, name: string, ante: number, matches: Map<string, JamlClause[]>): string | undefined;
package/dist/core.js CHANGED
@@ -1,5 +1,5 @@
1
- import { E as r, S as t, a as o, R as E } from "./chunks/spriteMapper-Dfr2_j0_.js";
2
- import { B as T, b as f, C as R, c as C, J as O, d as M, e as c, f as u, g as L, T as N, h as m, V as p, i as I, r as g } from "./chunks/spriteMapper-Dfr2_j0_.js";
1
+ import { E as r, S as t, a as o, R as E } from "./chunks/spriteMapper-gImEz0wa.js";
2
+ import { B as T, b as f, C as R, c as C, J as O, d as M, e as c, f as u, g as L, T as N, h as m, V as p, i as I, r as g } from "./chunks/spriteMapper-gImEz0wa.js";
3
3
  import { L as J } from "./chunks/Layer-B5y9UIAt.js";
4
4
  function e(a, s) {
5
5
  return { x: E[a] ?? 0, y: o[s] ?? 0 };
@@ -3,6 +3,7 @@ export type MotelyRenderableCategory = CardCategory | "unknown";
3
3
  export type MotelyItemInput = number | MotelyRuntimeItem | null | undefined;
4
4
  export interface MotelyRuntimeItem {
5
5
  type?: number;
6
+ typeCategory?: number;
6
7
  value?: number;
7
8
  edition?: number;
8
9
  seal?: number;
@@ -1,19 +1,16 @@
1
- import { MotelyRenderableCategory } from './motelyItemDecoder.js';
2
- export interface MotelySpriteData {
1
+ import { MotelyItem } from 'motely-wasm';
2
+ export interface MotelySpriteCell {
3
3
  atlasPath: string;
4
4
  gridCol: number;
5
5
  gridRow: number;
6
6
  gridCols: number;
7
7
  gridRows: number;
8
- displayName: string;
9
- category: MotelyRenderableCategory;
10
8
  }
11
- /**
12
- * Given a raw motely-wasm item value (which may be a bitpacked integer or raw MotelyItemType),
13
- * resolves it to a sprite atlas path and grid coordinates for rendering.
14
- */
15
- export declare function motelyItemToSprite(rawValue: number): MotelySpriteData | null;
16
- /**
17
- * Resolves a sprite by name and category without needing a Motely integer.
18
- */
19
- export declare function getMotelySpriteByName(name: string, category?: MotelyRenderableCategory): MotelySpriteData | null;
9
+ export declare function unpackSpriteCell(packed: number): {
10
+ sheet: number;
11
+ x: number;
12
+ y: number;
13
+ };
14
+ /** O(1): MotelyItemType int → atlas cell. No name, no normalize. */
15
+ export declare function motelyItemTypeToSprite(type: number): MotelySpriteCell | null;
16
+ export declare function motelyItemToSprite(item: MotelyItem | number): MotelySpriteCell | null;
@@ -0,0 +1,2 @@
1
+ /** packed cell: sheet:8 | x:8 | y:8. sheet 0=Jokers 1=Tarots 2=Decks */
2
+ export declare const MOTELY_SPRITE_BY_TYPE: ReadonlyMap<number, number>;
package/dist/index.d.ts CHANGED
@@ -2,13 +2,25 @@ export { JamlCardRenderer, type JamlCardRendererProps, } from './render/CanvasRe
2
2
  export { JamlGameCard, JamlVoucher, JamlTag, JamlBoss, resolveAnalyzerShopItem, type JamlGameCardProps, type AnalyzerShopItem, type AnalyzerResolvedItem, } from './components/GameCard.js';
3
3
  export { JamlyzerView, type JamlyzerViewProps, } from './components/JamlyzerView.js';
4
4
  export { JimboBalatroFooter, type JimboBalatroFooterProps, } from './components/JimboBalatroFooter.js';
5
+ export { Jamlyzer, type JamlyzerProps, type JamlyzerSortMode, type JamlyzerFilterMode, } from './components/Jamlyzer.js';
6
+ export { JamlyzerSeedCard, type JamlyzerSeedCardProps, type SeedMilestoneHit, } from './components/jamlyzer/JamlyzerSeedCard.js';
5
7
  export { JamlyzerBulk, type JamlyzerBulkProps, } from './components/JamlyzerBulk.js';
6
- export { parseJamlClauses, type ParsedJamlClause, type JamlClauseKind, type JamlItemType, type ParsedJamlFilters, matchClauseToItem, matchClauseToAnte, matchMotelyItemToClause, } from './lib/jaml/parseClauses.js';
8
+ export { JamlyzerTape, type JamlyzerTapeProps, } from './components/jamlyzer/JamlyzerTape.js';
9
+ export { JamlSeedInput, type JamlSeedInputProps, type JamlSeedInputVariant, } from './components/JamlSeedInput.js';
10
+ export { JamlSeedSpinner, type JamlSeedSpinnerProps, } from './components/JamlSeedSpinner.js';
11
+ export { normalizeJamlSeed } from './components/jamlSeedUtils.js';
12
+ export { DailyRitualView, type DailyRitualViewProps, } from './components/DailyRitualView.js';
13
+ export { type DailyRitual, parseRitual } from './lib/daily/ritual.js';
14
+ export { parseJaml, type JamlClause, type JamlClauseKind, type JamlItemType, type JamlFilter, matchClauseToItem, matchClauseToAnte, matchMotelyItemToClause, } from './lib/jaml/jaml.js';
15
+ export { estimateJamlRarity, estimateEtaSeconds, formatOneIn, formatEta, type JamlRarityEstimate, type ClauseRarityEstimate, type RarityFlag, type RaritySeverity, type RarityClauseKind, } from './lib/jaml/rarity.js';
16
+ export { RARITY_DATA, type RarityData } from './lib/jaml/rarityData.generated.js';
7
17
  export { DeckSprite, DECK_SPRITE_POS, STAKE_SPRITE_POS, type DeckSpriteProps, } from './components/DeckSprite.js';
18
+ export { DeckStakePicker, DECK_PICKER_NAMES, STAKE_PICKER_NAMES, type DeckStakePickerProps, } from './components/DeckStakePicker.js';
8
19
  export { StandardCard } from './components/StandardCard.js';
9
20
  export { CardSuit, CardRank, CardEnhancement, CardSeal, CardEdition, } from './components/cardEnums.js';
10
21
  export { JamlMapEditor, CategoryMenu, MysterySlot, JokerPicker, CategoryPicker, type JamlMapEditorProps, type MysterySlotProps, type SlotSelection, type SlotCategory, type JokerPickerProps, type JokerRarity, type CategoryPickerConfig, type CategoryPickerProps, VOUCHER_PICKER_CONFIG, TAG_PICKER_CONFIG, BOSS_PICKER_CONFIG, TAROT_PICKER_CONFIG, PLANET_PICKER_CONFIG, SPECTRAL_PICKER_CONFIG, PACK_PICKER_CONFIG, } from './components/jamlMap/index.js';
11
22
  export { JamlIde, type JamlIdeProps, type JamlIdeSearchResult, type JamlVisualFilter, type JamlVisualClause, type JamlZone, } from './components/JamlIde.js';
23
+ export { SeedLab, LiveJamlIde, STARTER_JAML, JAMLYZE_JAML, type SeedHit } from './components/SeedLab.js';
12
24
  export { JamlIdeVisual, type JamlIdeVisualProps } from './components/JamlIdeVisual.js';
13
25
  export { JamlIdeToolbar, type JamlIdeToolbarProps, type JamlIdeMode } from './components/JamlIdeToolbar.js';
14
26
  export { JamlMapPreview, type JamlMapPreviewProps } from './components/JamlMapPreview.js';