jaml-ui 7.0.0 → 8.1.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 (50) hide show
  1. package/dist/components/DeckStakePicker.d.ts +1 -1
  2. package/dist/components/JamlCodeEditor.d.ts +1 -1
  3. package/dist/components/JamlyzerBulk.d.ts +2 -2
  4. package/dist/components/JamlyzerView.d.ts +1 -1
  5. package/dist/components/SeedCalculus.d.ts +1 -1
  6. package/dist/components/SeedLab.d.ts +7 -2
  7. package/dist/components/filterStory/FilterStory.d.ts +1 -1
  8. package/dist/components/jamlyzer/JamlyzerAnteDetails.d.ts +3 -3
  9. package/dist/components/jamlyzer/JamlyzerErraticDeck.d.ts +1 -1
  10. package/dist/components/jamlyzer/JamlyzerEvents.d.ts +1 -1
  11. package/dist/components/jamlyzer/JamlyzerItemCard.d.ts +1 -1
  12. package/dist/components/jamlyzer/JamlyzerPackSection.d.ts +1 -1
  13. package/dist/components/jamlyzer/JamlyzerPulls.d.ts +1 -1
  14. package/dist/engineVocab.d.ts +2 -0
  15. package/dist/index.js +9076 -8810
  16. package/dist/index.js.map +1 -1
  17. package/dist/lib/jaml/engineGrammar.generated.d.ts +256 -0
  18. package/dist/lib/jaml/engineYamlCodemirror.d.ts +8 -0
  19. package/dist/motely.js +98 -92
  20. package/dist/motely.js.map +1 -1
  21. package/dist/ui/JimboApp.d.ts +1 -1
  22. package/dist/ui/JimboButton.d.ts +1 -1
  23. package/dist/ui/JimboCodeSurface.d.ts +1 -1
  24. package/dist/ui/JimboDivider.d.ts +1 -1
  25. package/dist/ui/JimboDock.d.ts +1 -1
  26. package/dist/ui/JimboErrorBlock.d.ts +1 -1
  27. package/dist/ui/JimboGrid.d.ts +1 -1
  28. package/dist/ui/JimboInset.d.ts +1 -1
  29. package/dist/ui/JimboLayout.d.ts +2 -2
  30. package/dist/ui/JimboListItem.d.ts +1 -1
  31. package/dist/ui/JimboMascot.d.ts +1 -1
  32. package/dist/ui/JimboOrbitalMenu.d.ts +1 -1
  33. package/dist/ui/JimboOuterTab.d.ts +1 -1
  34. package/dist/ui/JimboPanel.d.ts +1 -1
  35. package/dist/ui/JimboPanelSpinner.d.ts +1 -1
  36. package/dist/ui/JimboPicker.d.ts +8 -8
  37. package/dist/ui/JimboSectionHeader.d.ts +1 -1
  38. package/dist/ui/JimboShopBelt.d.ts +1 -1
  39. package/dist/ui/JimboSpacer.d.ts +1 -1
  40. package/dist/ui/JimboStatusPill.d.ts +1 -1
  41. package/dist/ui/JimboTextArea.d.ts +1 -1
  42. package/dist/ui/JimboTextInput.d.ts +1 -1
  43. package/dist/ui/JimboWordmark.d.ts +1 -1
  44. package/dist/ui/jimboTabs.d.ts +1 -1
  45. package/dist/ui/jimboText.d.ts +1 -1
  46. package/dist/ui/panel.d.ts +2 -2
  47. package/dist/ui/sprites.d.ts +1 -1
  48. package/dist/vocab.d.ts +1 -6
  49. package/package.json +22 -22
  50. package/dist/lib/jaml/jamlLangCodemirror.d.ts +0 -13
@@ -12,7 +12,7 @@ export type JimboLayoutProps = HTMLAttributes<HTMLDivElement> & {
12
12
  justify?: JimboJustify;
13
13
  };
14
14
  /** Vertical stack — the answer for "these go under each other". */
15
- export declare function JimboStack({ gap, align, justify, className, children, ...rest }: JimboLayoutProps): import("react").JSX.Element;
15
+ export declare function JimboStack({ gap, align, justify, className, children, ...rest }: JimboLayoutProps): import('react').JSX.Element;
16
16
  export type JimboRowProps = JimboLayoutProps & {
17
17
  /** Soft-wrap onto more rows when the row runs out of width. */
18
18
  wrap?: boolean;
@@ -23,4 +23,4 @@ export type JimboRowProps = JimboLayoutProps & {
23
23
  * hand-rolled layout div in the consumer screens should collapse into.
24
24
  * Defaults to vertically centred.
25
25
  */
26
- export declare function JimboRow({ gap, align, justify, wrap, className, children, ...rest }: JimboRowProps): import("react").JSX.Element;
26
+ export declare function JimboRow({ gap, align, justify, wrap, className, children, ...rest }: JimboRowProps): import('react').JSX.Element;
@@ -2,4 +2,4 @@ import { ButtonHTMLAttributes } from 'react';
2
2
  export interface JimboListItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3
3
  active?: boolean;
4
4
  }
5
- export declare function JimboListItem({ active, className, children, ...rest }: JimboListItemProps): import("react").JSX.Element;
5
+ export declare function JimboListItem({ active, className, children, ...rest }: JimboListItemProps): import('react').JSX.Element;
@@ -55,4 +55,4 @@ export interface JimboMascotProps extends HTMLAttributes<HTMLDivElement> {
55
55
  }) => ReactNode;
56
56
  }
57
57
  /** Jammy, the seed mascot — bounces, shakes, and hosts the orbital menu. */
58
- export declare function JimboMascot({ mood, size, menuItems, getMenuItems, onMenuAction, maxOrbitRadius, orbitBoxHeight, orbitBoxWidth, baseOrbitRadius, menuHidden, closeLabel, orbitalStore, renderImage, className, ...rest }: JimboMascotProps): import("react").JSX.Element;
58
+ export declare function JimboMascot({ mood, size, menuItems, getMenuItems, onMenuAction, maxOrbitRadius, orbitBoxHeight, orbitBoxWidth, baseOrbitRadius, menuHidden, closeLabel, orbitalStore, renderImage, className, ...rest }: JimboMascotProps): import('react').JSX.Element;
@@ -84,4 +84,4 @@ export interface JimboOrbitalMenuProps {
84
84
  * See ./orbitalLayout for why there is no iterative solver — the evenness is
85
85
  * the whole effect.
86
86
  */
87
- export declare function JimboOrbitalMenu({ items, onAction, onNavigate, onBack, currentMenu, closing, mascotSize, radius, radiusY, boxHeight, translateY, breadcrumb, showPageControls, onPagePrev, onPageNext, center, className, "aria-label": ariaLabel, }: JimboOrbitalMenuProps): import("react").JSX.Element | null;
87
+ export declare function JimboOrbitalMenu({ items, onAction, onNavigate, onBack, currentMenu, closing, mascotSize, radius, radiusY, boxHeight, translateY, breadcrumb, showPageControls, onPagePrev, onPageNext, center, className, "aria-label": ariaLabel, }: JimboOrbitalMenuProps): import('react').JSX.Element | null;
@@ -18,4 +18,4 @@ export interface JimboOuterTabProps extends HTMLAttributes<HTMLDivElement> {
18
18
  * the consumer (this primitive just passes `draggable` + `onDrag*` through
19
19
  * `...rest`); fullscreen is a one-prop toggle. Layout is grid per design rule 1.
20
20
  */
21
- export declare function JimboOuterTab({ label, tone, active, fullscreen, onToggleFullscreen, className, children, ...rest }: JimboOuterTabProps): import("react").JSX.Element;
21
+ export declare function JimboOuterTab({ label, tone, active, fullscreen, onToggleFullscreen, className, children, ...rest }: JimboOuterTabProps): import('react').JSX.Element;
@@ -7,4 +7,4 @@ export interface JimboPanelProps extends Omit<HTMLAttributes<HTMLDivElement>, "t
7
7
  /** Wrap children in .j-panel__body (default true when title set, else false for flex freestyle) */
8
8
  body?: boolean;
9
9
  }
10
- export declare function JimboPanel({ title, tone, body, className, children, ...rest }: JimboPanelProps): import("react").JSX.Element;
10
+ export declare function JimboPanel({ title, tone, body, className, children, ...rest }: JimboPanelProps): import('react').JSX.Element;
@@ -11,4 +11,4 @@ export interface JimboPanelSpinnerProps {
11
11
  className?: string;
12
12
  }
13
13
  /** Fat Balatro option cycler: 140px arrows flanking a fixed-height face. */
14
- export declare function JimboPanelSpinner({ label, title, description, media, onPrev, onNext, canPrev, canNext, className, }: JimboPanelSpinnerProps): import("react").JSX.Element;
14
+ export declare function JimboPanelSpinner({ label, title, description, media, onPrev, onNext, canPrev, canNext, className, }: JimboPanelSpinnerProps): import('react').JSX.Element;
@@ -1,19 +1,19 @@
1
1
  import { HTMLAttributes, ReactNode } from 'react';
2
- export declare function JimboPicker({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
3
- export declare function JimboPickerSection({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
4
- export declare function JimboPickerSearch({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
5
- export declare function JimboPickerHint({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
2
+ export declare function JimboPicker({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import('react').JSX.Element;
3
+ export declare function JimboPickerSection({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import('react').JSX.Element;
4
+ export declare function JimboPickerSearch({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import('react').JSX.Element;
5
+ export declare function JimboPickerHint({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import('react').JSX.Element;
6
6
  export interface JimboPickerGridProps extends HTMLAttributes<HTMLDivElement> {
7
7
  legendary?: boolean;
8
8
  scroll?: boolean;
9
9
  }
10
- export declare function JimboPickerGrid({ legendary, className, children, ...rest }: JimboPickerGridProps): import("react").JSX.Element;
10
+ export declare function JimboPickerGrid({ legendary, className, children, ...rest }: JimboPickerGridProps): import('react').JSX.Element;
11
11
  export interface JimboPickerItemProps extends HTMLAttributes<HTMLButtonElement> {
12
12
  muted?: boolean;
13
13
  title?: string;
14
14
  onClick?: () => void;
15
15
  children?: ReactNode;
16
16
  }
17
- export declare function JimboPickerItem({ muted, className, children, ...rest }: JimboPickerItemProps): import("react").JSX.Element;
18
- export declare function JimboPickerPair({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
19
- export declare function JimboPickerEmpty({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
17
+ export declare function JimboPickerItem({ muted, className, children, ...rest }: JimboPickerItemProps): import('react').JSX.Element;
18
+ export declare function JimboPickerPair({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import('react').JSX.Element;
19
+ export declare function JimboPickerEmpty({ className, children, ...rest }: HTMLAttributes<HTMLDivElement>): import('react').JSX.Element;
@@ -5,4 +5,4 @@ export interface JimboSectionHeaderProps extends HTMLAttributes<HTMLDivElement>
5
5
  tone?: JimboSectionTone;
6
6
  }
7
7
  /** Colored tag + rule — section divider inside a panel. */
8
- export declare function JimboSectionHeader({ label, tone, className, ...rest }: JimboSectionHeaderProps): import("react").JSX.Element;
8
+ export declare function JimboSectionHeader({ label, tone, className, ...rest }: JimboSectionHeaderProps): import('react').JSX.Element;
@@ -6,4 +6,4 @@ export interface JimboShopBeltProps {
6
6
  snap?: boolean;
7
7
  }
8
8
  /** Horizontal pixel-card tape. Drag follows the finger; wheel maps to x. */
9
- export declare function JimboShopBelt({ children, className, onNearEnd, snap }: JimboShopBeltProps): import("react").JSX.Element;
9
+ export declare function JimboShopBelt({ children, className, onNearEnd, snap }: JimboShopBeltProps): import('react').JSX.Element;
@@ -4,4 +4,4 @@ export interface JimboSpacerProps extends HTMLAttributes<HTMLDivElement> {
4
4
  size?: number;
5
5
  }
6
6
  /** Empty vertical breathing room between stacks of content. */
7
- export declare function JimboSpacer({ size, style, ...rest }: JimboSpacerProps): import("react").JSX.Element;
7
+ export declare function JimboSpacer({ size, style, ...rest }: JimboSpacerProps): import('react').JSX.Element;
@@ -5,4 +5,4 @@ export interface JimboStatusPillProps extends HTMLAttributes<HTMLSpanElement> {
5
5
  label?: string;
6
6
  }
7
7
  /** Short single-word state indicator — the missing React half of `.j-status-pill`. */
8
- export declare function JimboStatusPill({ status, label, className, children, ...rest }: JimboStatusPillProps): import("react").JSX.Element;
8
+ export declare function JimboStatusPill({ status, label, className, children, ...rest }: JimboStatusPillProps): import('react').JSX.Element;
@@ -1,3 +1,3 @@
1
1
  import { TextareaHTMLAttributes } from 'react';
2
2
  export type JimboTextAreaProps = TextareaHTMLAttributes<HTMLTextAreaElement>;
3
- export declare function JimboTextArea({ className, style, ...rest }: JimboTextAreaProps): import("react").JSX.Element;
3
+ export declare function JimboTextArea({ className, style, ...rest }: JimboTextAreaProps): import('react').JSX.Element;
@@ -2,4 +2,4 @@ import { InputHTMLAttributes, Ref } from 'react';
2
2
  export type JimboTextInputProps = InputHTMLAttributes<HTMLInputElement> & {
3
3
  ref?: Ref<HTMLInputElement>;
4
4
  };
5
- export declare function JimboTextInput({ className, ref, ...rest }: JimboTextInputProps): import("react").JSX.Element;
5
+ export declare function JimboTextInput({ className, ref, ...rest }: JimboTextInputProps): import('react').JSX.Element;
@@ -4,4 +4,4 @@ export interface JimboWordmarkProps extends Omit<HTMLAttributes<HTMLDivElement>,
4
4
  sub?: ReactNode;
5
5
  }
6
6
  /** Hero title + optional subtitle — gold wordmark, grey sub. */
7
- export declare function JimboWordmark({ title, sub, className, ...rest }: JimboWordmarkProps): import("react").JSX.Element;
7
+ export declare function JimboWordmark({ title, sub, className, ...rest }: JimboWordmarkProps): import('react').JSX.Element;
@@ -12,4 +12,4 @@ export interface JimboTabsProps {
12
12
  * chunky press, same red tone as the in-game shop buttons. The only thing
13
13
  * that marks the selected tab is the red bouncing triangle above it.
14
14
  */
15
- export declare function JimboTabs({ tabs, activeTab, onTabChange }: JimboTabsProps): import("react").JSX.Element;
15
+ export declare function JimboTabs({ tabs, activeTab, onTabChange }: JimboTabsProps): import('react').JSX.Element;
@@ -5,4 +5,4 @@ export interface JimboTextProps extends HTMLAttributes<HTMLSpanElement> {
5
5
  size?: JimboTextSize;
6
6
  tone?: JimboTextTone;
7
7
  }
8
- export declare function JimboText({ size, tone, className, children, ...rest }: JimboTextProps): import("react").JSX.Element;
8
+ export declare function JimboText({ size, tone, className, children, ...rest }: JimboTextProps): import('react').JSX.Element;
@@ -2,7 +2,7 @@ import { HTMLAttributes, ReactNode } from 'react';
2
2
  export type JimboTone = "red" | "blue" | "green" | "orange" | "purple" | "grey" | "gold" | "tarot" | "planet" | "spectral";
3
3
  export { JimboButton } from './JimboButton.js';
4
4
  export type JimboInnerPanelProps = HTMLAttributes<HTMLDivElement>;
5
- export declare function JimboInnerPanel({ className, children, ...rest }: JimboInnerPanelProps): import("react").JSX.Element;
5
+ export declare function JimboInnerPanel({ className, children, ...rest }: JimboInnerPanelProps): import('react').JSX.Element;
6
6
  export interface JimboModalProps {
7
7
  open: boolean;
8
8
  onClose?: () => void;
@@ -10,4 +10,4 @@ export interface JimboModalProps {
10
10
  className?: string;
11
11
  children?: ReactNode;
12
12
  }
13
- export declare function JimboModal({ open, onClose, title, className, children }: JimboModalProps): import("react").JSX.Element | null;
13
+ export declare function JimboModal({ open, onClose, title, className, children }: JimboModalProps): import('react').JSX.Element | null;
@@ -7,4 +7,4 @@ export interface JimboSpriteProps {
7
7
  className?: string;
8
8
  style?: CSSProperties;
9
9
  }
10
- export declare function JimboSprite({ name, sheet, width, className, style }: JimboSpriteProps): import("react").JSX.Element;
10
+ export declare function JimboSprite({ name, sheet, width, className, style }: JimboSpriteProps): import('react').JSX.Element;
package/dist/vocab.d.ts CHANGED
@@ -11,12 +11,7 @@ export declare const engineKey: (name: string) => string;
11
11
  export declare const COMMON_JOKER_KEYS: ReadonlySet<string>;
12
12
  export declare const UNCOMMON_JOKER_KEYS: ReadonlySet<string>;
13
13
  export declare const RARE_JOKER_KEYS: ReadonlySet<string>;
14
- /**
15
- * Legendaries are the full joker set minus the three named tiers — the engine
16
- * ships no legendary-name enum. If a future engine adds a fifth rarity, those
17
- * jokers would silently land here; `check-vocab-drift.mjs` asserts the tier
18
- * counts still partition the full list so that shows up as a CI failure.
19
- */
14
+ /** Legendaries straight from the engine's rarity bits (MotelyJokerRarity.Legendary). */
20
15
  export declare const LEGENDARY_JOKER_KEYS: ReadonlySet<string>;
21
16
  /** Rarity tier for a joker, by engine key or sprite display name. */
22
17
  export declare function jokerRarityOf(name: string): JokerRarityName;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jaml-ui",
3
- "version": "7.0.0",
3
+ "version": "8.1.0",
4
4
  "description": "Balatro card sprites and the Jimbo design system for MCP Apps, with a @json-render (Vercel Labs) catalog.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -77,52 +77,51 @@
77
77
  "dependencies": {
78
78
  "@json-render/core": "^0.20.0",
79
79
  "@json-render/react": "^0.20.0",
80
- "jaml-lang": "^3.14.2",
81
80
  "react-icons": "^5.7.0",
82
- "zod": "^4.6.1"
81
+ "zod": "^4.6.5"
83
82
  },
84
83
  "peerDependencies": {
85
- "motely-wasm": "^27.0.0",
84
+ "motely-wasm": "^28.0.0",
86
85
  "react": "^18.2.0 || ^19.0.0",
87
86
  "react-dom": "^18.2.0 || ^19.0.0"
88
87
  },
89
88
  "devDependencies": {
90
89
  "@codemirror/autocomplete": "^6.20.3",
91
- "@codemirror/commands": "^6.11.0",
90
+ "@codemirror/commands": "^6.11.1",
92
91
  "@codemirror/language": "^6.12.4",
93
92
  "@codemirror/lint": "^6.9.7",
94
- "@codemirror/state": "^6.7.4",
95
- "@codemirror/view": "^6.43.11",
93
+ "@codemirror/state": "^6.7.6",
94
+ "@codemirror/view": "^6.43.13",
96
95
  "@eslint/js": "^10.0.1",
97
- "@lezer/highlight": "^1.2.3",
98
- "@storybook/addon-docs": "^10.6.0",
99
- "@storybook/react": "^10.6.0",
100
- "@storybook/react-vite": "^10.6.0",
101
- "@types/node": "^25.9.6",
96
+ "@lezer/highlight": "^1.2.5",
97
+ "@storybook/addon-docs": "^10.6.1",
98
+ "@storybook/react": "^10.6.1",
99
+ "@storybook/react-vite": "^10.6.1",
100
+ "@types/node": "^25.9.9",
102
101
  "@types/react": "^19.3.0",
103
102
  "@types/react-dom": "^19.3.0",
104
103
  "@vitejs/plugin-react": "^5.2.0",
105
- "eslint": "^10.10.0",
104
+ "eslint": "^10.12.0",
106
105
  "eslint-plugin-react-hooks": "^7.1.1",
107
- "eslint-plugin-react-refresh": "^0.5.6",
106
+ "eslint-plugin-react-refresh": "^0.5.7",
108
107
  "eslint-plugin-storybook": "10.4.6",
109
- "globals": "^17.12.0",
110
- "motely-wasm": "^27.0.0",
108
+ "globals": "^17.13.0",
109
+ "motely-wasm": "^28.0.0",
111
110
  "react": "^19.3.0",
112
111
  "react-dom": "^19.3.0",
113
- "storybook": "^10.6.0",
112
+ "storybook": "^10.6.1",
114
113
  "typescript": "^5.9.3",
115
- "typescript-eslint": "^8.70.0",
116
- "vite": "^6.4.3",
117
- "vite-plugin-dts": "^5.1.0"
114
+ "typescript-eslint": "^8.71.1",
115
+ "vite": "^6.4.4",
116
+ "vite-plugin-dts": "^5.1.2"
118
117
  },
119
118
  "scripts": {
120
119
  "build": "vite build",
121
120
  "dev": "storybook dev",
122
121
  "dev:watch": "vite build --watch",
123
- "jaml:mcp": "node scripts/jaml-mcp-server.mjs",
124
122
  "typecheck": "tsc --noEmit --pretty false",
125
123
  "vocab:check": "node --experimental-strip-types scripts/check-vocab-drift.mjs",
124
+ "decode:check": "node scripts/check-decoder.mjs",
126
125
  "lut:emit": "node scripts/emit-motely-sprite-lut.mjs",
127
126
  "motd:emit": "node scripts/emit-motds.mjs",
128
127
  "typecheck:all": "pnpm typecheck && pnpm -r --if-present run typecheck",
@@ -130,6 +129,7 @@
130
129
  "build-storybook": "pnpm run build && storybook build",
131
130
  "lint": "eslint .",
132
131
  "design:detect": "node .agents/skills/impeccable/scripts/detect.mjs --json src",
133
- "design:doctor": "node .agents/skills/impeccable/scripts/doctor.mjs"
132
+ "design:doctor": "node .agents/skills/impeccable/scripts/doctor.mjs",
133
+ "gen:grammar": "node scripts/gen-engine-grammar.mjs"
134
134
  }
135
135
  }
@@ -1,13 +0,0 @@
1
- import { CompletionContext, CompletionResult } from '@codemirror/autocomplete';
2
- /**
3
- * CodeMirror completion source backed by jaml-lang's context-aware completions.
4
- * Tap into `joker: ` and you get the joker list; type `Blue` and it narrows to
5
- * Blueprint. Keys insert `label: `, values insert the bare value.
6
- */
7
- export declare function jamlCompletionSource(context: CompletionContext): CompletionResult | null;
8
- /**
9
- * CodeMirror lint source backed by jaml-lang diagnostics (YAML syntax + Zod
10
- * structural validation). The Motely WASM engine stays the final authority;
11
- * this is the fast structural gate.
12
- */
13
- export declare const jamlLinter: import('@codemirror/state').Extension;