jaml-ui 0.27.0 → 0.29.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 (68) hide show
  1. package/README.md +13 -17
  2. package/dist/assets/{searchPoolWorker-CejAnH4a.js → searchPoolWorker-C4xj1WA_.js} +9 -4
  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-CTtPOuxF.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-C4_5G1Z6.js.map +1 -0
  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-D_9HO9OO.js +3127 -0
  17. package/dist/chunks/ui-D_9HO9OO.js.map +1 -0
  18. package/dist/components/JamlAestheticSelector.d.ts +2 -3
  19. package/dist/components/JamlIdeToolbar.d.ts +3 -1
  20. package/dist/components/JamlSeedInput.d.ts +14 -4
  21. package/dist/components/JamlSeedSpinner.d.ts +7 -0
  22. package/dist/components/Jamlyzer.d.ts +5 -1
  23. package/dist/components/PaginatedFilterBrowser.d.ts +3 -0
  24. package/dist/components/RunConfigModal.d.ts +1 -1
  25. package/dist/components/jamlSeedUtils.d.ts +1 -0
  26. package/dist/config.d.ts +7 -4
  27. package/dist/core.js +8 -8
  28. package/dist/core.js.map +1 -1
  29. package/dist/decode/motelyItemFormats.d.ts +3124 -0
  30. package/dist/hooks/useAnalyzer.d.ts +0 -11
  31. package/dist/hooks/useIntersectionObserver.d.ts +1 -1
  32. package/dist/hooks/useMotelyRuntime.d.ts +2 -2
  33. package/dist/hooks/useSearch.d.ts +3 -3
  34. package/dist/index.d.ts +3 -7
  35. package/dist/index.js +3590 -4352
  36. package/dist/index.js.map +1 -1
  37. package/dist/lib/hooks/useDragScroll.d.ts +1 -1
  38. package/dist/lib/motely/runtime.d.ts +3 -0
  39. package/dist/motely.d.ts +3 -2
  40. package/dist/motely.js +2101 -24
  41. package/dist/motely.js.map +1 -1
  42. package/dist/providers/MotelyProvider.d.ts +11 -0
  43. package/dist/r3f.js +4 -4
  44. package/dist/r3f.js.map +1 -1
  45. package/dist/ui/JimboBadge.d.ts +2 -3
  46. package/dist/ui/JimboPanelSpinner.d.ts +15 -0
  47. package/dist/ui/JimboTextInput.d.ts +5 -0
  48. package/dist/ui/PanelSplitter.d.ts +2 -1
  49. package/dist/ui/footer.d.ts +7 -1
  50. package/dist/ui/hooks.d.ts +2 -3
  51. package/dist/ui/jimbo.css +1 -1
  52. package/dist/ui/panel.d.ts +2 -4
  53. package/dist/ui.d.ts +3 -0
  54. package/dist/ui.js +3 -3
  55. package/jaml.schema.json +341 -287
  56. package/package.json +20 -24
  57. package/DESIGN.md +0 -236
  58. package/dist/assets/searchPoolWorker-CejAnH4a.js.map +0 -1
  59. package/dist/chunks/motelyItemDecoder-CRhfNIGU.js +0 -219
  60. package/dist/chunks/motelyItemDecoder-CRhfNIGU.js.map +0 -1
  61. package/dist/chunks/searchPoolWorker-CTtPOuxF.js.map +0 -1
  62. package/dist/chunks/spriteMapper-CFjN0_TV.js.map +0 -1
  63. package/dist/chunks/ui-BBUfR6RM.js +0 -1386
  64. package/dist/chunks/ui-BBUfR6RM.js.map +0 -1
  65. package/dist/components/AnalyzerExplorer.d.ts +0 -47
  66. package/dist/motelyBoot.d.ts +0 -15
  67. package/dist/ui/ide/DeckSprite.d.ts +0 -1
  68. package/dist/ui/ide/RegexTool.d.ts +0 -3
@@ -1,4 +1,3 @@
1
- import { default as React } from 'react';
2
1
  export type JamlAestheticOption = "Palindrome" | "Psychosis" | "Gross" | "Nsfw" | "Funny" | "Balatro";
3
2
  export interface JamlAestheticSelectorProps {
4
3
  value?: JamlAestheticOption | null;
@@ -7,7 +6,7 @@ export interface JamlAestheticSelectorProps {
7
6
  style?: React.CSSProperties;
8
7
  }
9
8
  /**
10
- * Pill-toggle selector for seed aesthetic filters.
11
- * All styling via jimbo.css `.j-aesthetic-selector` / `.j-aesthetic-pill` zero inline styles.
9
+ * Spinner-style aesthetic selector for seed filters.
10
+ * Uses left/right controls plus a centered badge value display.
12
11
  */
13
12
  export declare function JamlAestheticSelector({ value, onChange, className, style }: JamlAestheticSelectorProps): import("react/jsx-runtime").JSX.Element;
@@ -3,10 +3,12 @@ export interface JamlIdeToolbarProps {
3
3
  mode: JamlIdeMode;
4
4
  onModeChange: (mode: JamlIdeMode) => void;
5
5
  resultCount?: number;
6
+ showResultsTab?: boolean;
7
+ showJamlyzerTab?: boolean;
6
8
  className?: string;
7
9
  onSearch?: () => void;
8
10
  isSearching?: boolean;
9
11
  onLoadFile?: () => void;
10
12
  isLoadingFile?: boolean;
11
13
  }
12
- export declare function JamlIdeToolbar({ mode, onModeChange, resultCount, className, onSearch, isSearching, onLoadFile, isLoadingFile, }: JamlIdeToolbarProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function JamlIdeToolbar({ mode, onModeChange, resultCount, showResultsTab, showJamlyzerTab, className, onSearch, isSearching, onLoadFile, isLoadingFile, }: JamlIdeToolbarProps): import("react/jsx-runtime").JSX.Element;
@@ -1,14 +1,24 @@
1
1
  import { default as React } from 'react';
2
+ export type JamlSeedInputVariant = "normal" | "dark" | "alt";
2
3
  export interface JamlSeedInputProps {
3
4
  value?: string;
4
5
  onChange?: (seed: string) => void;
5
6
  placeholder?: string;
7
+ label?: React.ReactNode;
8
+ variant?: JamlSeedInputVariant;
6
9
  className?: string;
7
10
  style?: React.CSSProperties;
11
+ autoFocus?: boolean;
12
+ onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
13
+ onBlur?: React.FocusEventHandler<HTMLInputElement>;
14
+ onFocus?: React.FocusEventHandler<HTMLInputElement>;
15
+ disabled?: boolean;
16
+ name?: string;
17
+ id?: string;
18
+ title?: string;
19
+ "aria-label"?: string;
8
20
  }
9
21
  /**
10
- * Balatro-styled seed input field.
11
- * Validates 1-8 uppercase alphanumeric characters.
12
- * All styling via jimbo.css `.j-seed-input` classes — zero inline styles.
22
+ * Balatro-style seed input constrained to the real 8-character format.
13
23
  */
14
- export declare function JamlSeedInput({ value, onChange, placeholder, className, style }: JamlSeedInputProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare const JamlSeedInput: React.ForwardRefExoticComponent<JamlSeedInputProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,7 @@
1
+ import { JamlSeedInputProps } from './JamlSeedInput.js';
2
+ export interface JamlSeedSpinnerProps extends Omit<JamlSeedInputProps, "onChange"> {
3
+ seeds?: string[];
4
+ onChange?: (seed: string) => void;
5
+ onCopy?: (seed: string) => void;
6
+ }
7
+ export declare function JamlSeedSpinner({ seeds, value, onChange, onCopy, label, placeholder, variant, className, style, ...inputProps }: JamlSeedSpinnerProps): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,11 @@
1
+ import { JamlSeedInputVariant } from './JamlSeedInput.js';
1
2
  export interface JamlyzerProps {
2
3
  jaml: string;
3
4
  onTest: (seed: string) => void;
4
5
  result: "idle" | "match" | "nomatch" | "running" | "error";
5
6
  error?: string | null;
7
+ seeds?: string[];
8
+ initialSeed?: string;
9
+ seedVariant?: JamlSeedInputVariant;
6
10
  }
7
- export declare function Jamlyzer({ jaml, onTest, result, error }: JamlyzerProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function Jamlyzer({ jaml, onTest, result, error, seeds, initialSeed, seedVariant }: JamlyzerProps): import("react/jsx-runtime").JSX.Element;
@@ -2,6 +2,9 @@ export interface FilterItem {
2
2
  id: string;
3
3
  name: string;
4
4
  description: string;
5
+ deckText?: string;
6
+ stakeText?: string;
7
+ targetItems?: string[];
5
8
  authorText?: string;
6
9
  dateText?: string;
7
10
  statsText?: string;
@@ -5,4 +5,4 @@ export interface RunConfigModalProps {
5
5
  stake: string;
6
6
  onChange: (deck: string, stake: string) => void;
7
7
  }
8
- export declare function RunConfigModal({ open, onClose, deck, stake, onChange, }: RunConfigModalProps): import("react/jsx-runtime").JSX.Element | null;
8
+ export declare function RunConfigModal({ open, onClose, deck, stake, onChange, }: RunConfigModalProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function normalizeJamlSeed(seed: string): string;
package/dist/config.d.ts CHANGED
@@ -1,7 +1,10 @@
1
1
  export declare let jamlAssetBaseUrl: string;
2
- export declare let motelyEnums: any;
2
+ export declare let motelyEnums: Record<string, unknown> | null;
3
+ export declare let motelyBinPath: string;
3
4
  export declare function setJamlAssetBaseUrl(url: string): void;
4
- export declare function setMotelyDisplayEnums(motely: any): void;
5
- export declare function setMotelyDecoderEnums(motely: any): void;
5
+ export declare function setMotelyBinPath(path: string): void;
6
+ export declare function setMotelyEnums(motely: Record<string, unknown> | null): void;
7
+ export declare const setMotelyDisplayEnums: typeof setMotelyEnums;
8
+ export declare const setMotelyDecoderEnums: typeof setMotelyEnums;
6
9
  export declare function getJamlAssetBaseUrl(): string;
7
- export declare function getMotelyEnums(): any;
10
+ export declare function getMotelyEnums(): Record<string, unknown> | null;
package/dist/core.js CHANGED
@@ -1,19 +1,19 @@
1
- import { n as e, t } from "./chunks/assets-RWUiFSTc.js";
2
- import { t as n } from "./chunks/Layer-BBPJFHfs.js";
3
- import { _ as r, a as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, o as p, p as m, r as h, s as g, u as _, v } from "./chunks/spriteMapper-CFjN0_TV.js";
1
+ import { n as e, t } from "./chunks/assets-D80i9sMq.js";
2
+ import { _ as n, a as r, c as i, d as a, f as o, g as s, h as c, i as l, l as u, m as d, o as f, p, r as m, s as h, u as g, v as _ } from "./chunks/spriteMapper-C4_5G1Z6.js";
3
+ import { t as v } from "./chunks/Layer-Ckd_T6Fw.js";
4
4
  //#region src/utils/gameCardUtils.ts
5
5
  function y(e, t) {
6
6
  return {
7
- x: o[e] ?? 0,
8
- y: l[t] ?? 0
7
+ x: a[e] ?? 0,
8
+ y: c[t] ?? 0
9
9
  };
10
10
  }
11
11
  function b(e) {
12
- return s[e];
12
+ return o[e];
13
13
  }
14
14
  function x(e) {
15
15
  for (let t of e) {
16
- let e = a[t];
16
+ let e = i[t];
17
17
  if (e) return e;
18
18
  }
19
19
  return {
@@ -22,6 +22,6 @@ function x(e) {
22
22
  };
23
23
  }
24
24
  //#endregion
25
- export { u as BOOSTER_PACKS, i as BOSSES, p as CONSUMABLE_FACES, g as EDITION_MAP, a as ENHANCER_MAP, t as JAML_ASSET_FILES, d as JOKERS, _ as JOKER_FACES, n as Layer, o as RANK_MAP, s as SEAL_MAP, m as SPRITE_SHEETS, f as STICKER_MAP, l as SUIT_MAP, c as TAGS, r as TAROTS_AND_PLANETS, v as VOUCHERS, x as getEnhancerPosition, b as getSealPosition, h as getSpriteData, y as getStandardCardPosition, e as resolveJamlAssetUrl };
25
+ export { l as BOOSTER_PACKS, r as BOSSES, f as CONSUMABLE_FACES, h as EDITION_MAP, i as ENHANCER_MAP, t as JAML_ASSET_FILES, u as JOKERS, g as JOKER_FACES, v as Layer, a as RANK_MAP, o as SEAL_MAP, p as SPRITE_SHEETS, d as STICKER_MAP, c as SUIT_MAP, s as TAGS, n as TAROTS_AND_PLANETS, _ as VOUCHERS, x as getEnhancerPosition, b as getSealPosition, m as getSpriteData, y as getStandardCardPosition, e as resolveJamlAssetUrl };
26
26
 
27
27
  //# sourceMappingURL=core.js.map
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","names":[],"sources":["../src/utils/gameCardUtils.ts"],"sourcesContent":["import { RANK_MAP, SUIT_MAP, SEAL_MAP, ENHANCER_MAP, type SpritePos } from \"../sprites/spriteData.js\";\r\n\r\nexport function getStandardCardPosition(rank: string, suit: string): SpritePos {\r\n return { x: RANK_MAP[rank] ?? 0, y: SUIT_MAP[suit] ?? 0 };\r\n}\r\n\r\nexport function getSealPosition(seal: string): SpritePos | undefined {\r\n return SEAL_MAP[seal];\r\n}\r\n\r\nexport function getEnhancerPosition(modifiers: string[]): SpritePos {\r\n for (const m of modifiers) {\r\n const pos = ENHANCER_MAP[m];\r\n if (pos) return pos;\r\n }\r\n return { x: 1, y: 0 };\r\n}\r\n"],"mappings":";;;;AAEA,SAAgB,EAAwB,GAAc,GAAyB;CAC3E,OAAO;EAAE,GAAG,EAAS,MAAS;EAAG,GAAG,EAAS,MAAS;EAAG;;AAG7D,SAAgB,EAAgB,GAAqC;CACjE,OAAO,EAAS;;AAGpB,SAAgB,EAAoB,GAAgC;CAChE,KAAK,IAAM,KAAK,GAAW;EACvB,IAAM,IAAM,EAAa;EACzB,IAAI,GAAK,OAAO;;CAEpB,OAAO;EAAE,GAAG;EAAG,GAAG;EAAG"}
1
+ {"version":3,"file":"core.js","names":[],"sources":["../src/utils/gameCardUtils.ts"],"sourcesContent":["import { RANK_MAP, SUIT_MAP, SEAL_MAP, ENHANCER_MAP, type SpritePos } from \"../sprites/spriteData.js\";\r\n\r\nexport function getStandardCardPosition(rank: string, suit: string): SpritePos {\r\n return { x: RANK_MAP[rank] ?? 0, y: SUIT_MAP[suit] ?? 0 };\r\n}\r\n\r\nexport function getSealPosition(seal: string): SpritePos | undefined {\r\n return SEAL_MAP[seal];\r\n}\r\n\r\nexport function getEnhancerPosition(modifiers: string[]): SpritePos {\r\n for (const m of modifiers) {\r\n const pos = ENHANCER_MAP[m];\r\n if (pos) return pos;\r\n }\r\n return { x: 1, y: 0 };\r\n}\r\n"],"mappings":";;;;AAEA,SAAgB,EAAwB,GAAc,GAAyB;CAC3E,OAAO;EAAE,GAAG,EAAS,MAAS;EAAG,GAAG,EAAS,MAAS;CAAE;AAC5D;AAEA,SAAgB,EAAgB,GAAqC;CACjE,OAAO,EAAS;AACpB;AAEA,SAAgB,EAAoB,GAAgC;CAChE,KAAK,IAAM,KAAK,GAAW;EACvB,IAAM,IAAM,EAAa;EACzB,IAAI,GAAK,OAAO;CACpB;CACA,OAAO;EAAE,GAAG;EAAG,GAAG;CAAE;AACxB"}