jaml-ui 8.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.
@@ -0,0 +1,256 @@
1
+ /** Top-level document keys (JamlConfig properties). */
2
+ export declare const ROOT_KEYS: readonly string[];
3
+ /** Clause key (the YAML mapping key, e.g. `legendaryJoker`) -> the clause class it loads. */
4
+ export declare const DISCRIMINATORS: {
5
+ readonly joker: {
6
+ readonly clause: "JokerClause";
7
+ readonly valueProperty: "jokers";
8
+ readonly valueIsList: true;
9
+ };
10
+ readonly jokers: {
11
+ readonly clause: "JokerClause";
12
+ readonly valueProperty: "jokers";
13
+ readonly valueIsList: true;
14
+ };
15
+ readonly commonJoker: {
16
+ readonly clause: "CommonJokerClause";
17
+ readonly valueProperty: "jokers";
18
+ readonly valueIsList: true;
19
+ };
20
+ readonly commonJokers: {
21
+ readonly clause: "CommonJokerClause";
22
+ readonly valueProperty: "jokers";
23
+ readonly valueIsList: true;
24
+ };
25
+ readonly uncommonJoker: {
26
+ readonly clause: "UncommonJokerClause";
27
+ readonly valueProperty: "jokers";
28
+ readonly valueIsList: true;
29
+ };
30
+ readonly uncommonJokers: {
31
+ readonly clause: "UncommonJokerClause";
32
+ readonly valueProperty: "jokers";
33
+ readonly valueIsList: true;
34
+ };
35
+ readonly rareJoker: {
36
+ readonly clause: "RareJokerClause";
37
+ readonly valueProperty: "jokers";
38
+ readonly valueIsList: true;
39
+ };
40
+ readonly rareJokers: {
41
+ readonly clause: "RareJokerClause";
42
+ readonly valueProperty: "jokers";
43
+ readonly valueIsList: true;
44
+ };
45
+ readonly legendaryJoker: {
46
+ readonly clause: "LegendaryJokerClause";
47
+ readonly valueProperty: "jokers";
48
+ readonly valueIsList: true;
49
+ };
50
+ readonly legendaryJokers: {
51
+ readonly clause: "LegendaryJokerClause";
52
+ readonly valueProperty: "jokers";
53
+ readonly valueIsList: true;
54
+ };
55
+ readonly planetCard: {
56
+ readonly clause: "PlanetCardClause";
57
+ readonly valueProperty: "planets";
58
+ readonly valueIsList: true;
59
+ };
60
+ readonly planetCards: {
61
+ readonly clause: "PlanetCardClause";
62
+ readonly valueProperty: "planets";
63
+ readonly valueIsList: true;
64
+ };
65
+ readonly spectralCard: {
66
+ readonly clause: "SpectralCardClause";
67
+ readonly valueProperty: "spectrals";
68
+ readonly valueIsList: true;
69
+ };
70
+ readonly spectralCards: {
71
+ readonly clause: "SpectralCardClause";
72
+ readonly valueProperty: "spectrals";
73
+ readonly valueIsList: true;
74
+ };
75
+ readonly tarotCard: {
76
+ readonly clause: "TarotCardClause";
77
+ readonly valueProperty: "tarots";
78
+ readonly valueIsList: true;
79
+ };
80
+ readonly tarotCards: {
81
+ readonly clause: "TarotCardClause";
82
+ readonly valueProperty: "tarots";
83
+ readonly valueIsList: true;
84
+ };
85
+ readonly standardCard: {
86
+ readonly clause: "StandardCardClause";
87
+ readonly valueProperty: "label";
88
+ readonly valueIsList: false;
89
+ };
90
+ readonly standardCards: {
91
+ readonly clause: "StandardCardClause";
92
+ readonly valueProperty: "label";
93
+ readonly valueIsList: false;
94
+ };
95
+ readonly erraticRank: {
96
+ readonly clause: "ErraticRankClause";
97
+ readonly valueProperty: "rank";
98
+ readonly valueIsList: false;
99
+ };
100
+ readonly erraticRanks: {
101
+ readonly clause: "ErraticRankClause";
102
+ readonly valueProperty: "rank";
103
+ readonly valueIsList: false;
104
+ };
105
+ readonly erraticSuit: {
106
+ readonly clause: "ErraticSuitClause";
107
+ readonly valueProperty: "suit";
108
+ readonly valueIsList: false;
109
+ };
110
+ readonly erraticSuits: {
111
+ readonly clause: "ErraticSuitClause";
112
+ readonly valueProperty: "suit";
113
+ readonly valueIsList: false;
114
+ };
115
+ readonly voucher: {
116
+ readonly clause: "VoucherClause";
117
+ readonly valueProperty: "vouchers";
118
+ readonly valueIsList: true;
119
+ };
120
+ readonly vouchers: {
121
+ readonly clause: "VoucherClause";
122
+ readonly valueProperty: "vouchers";
123
+ readonly valueIsList: true;
124
+ };
125
+ readonly tag: {
126
+ readonly clause: "TagClause";
127
+ readonly valueProperty: "tags";
128
+ readonly valueIsList: true;
129
+ };
130
+ readonly tags: {
131
+ readonly clause: "TagClause";
132
+ readonly valueProperty: "tags";
133
+ readonly valueIsList: true;
134
+ };
135
+ readonly smallBlindTag: {
136
+ readonly clause: "SmallBlindTagClause";
137
+ readonly valueProperty: "tags";
138
+ readonly valueIsList: true;
139
+ };
140
+ readonly bigBlindTag: {
141
+ readonly clause: "BigBlindTagClause";
142
+ readonly valueProperty: "tags";
143
+ readonly valueIsList: true;
144
+ };
145
+ readonly boss: {
146
+ readonly clause: "BossClause";
147
+ readonly valueProperty: "bosses";
148
+ readonly valueIsList: true;
149
+ };
150
+ readonly bosses: {
151
+ readonly clause: "BossClause";
152
+ readonly valueProperty: "bosses";
153
+ readonly valueIsList: true;
154
+ };
155
+ readonly boosterPack: {
156
+ readonly clause: "BoosterPackClause";
157
+ readonly valueProperty: "packs";
158
+ readonly valueIsList: true;
159
+ };
160
+ readonly boosterPacks: {
161
+ readonly clause: "BoosterPackClause";
162
+ readonly valueProperty: "packs";
163
+ readonly valueIsList: true;
164
+ };
165
+ readonly pokerHand: {
166
+ readonly clause: "PokerHandClause";
167
+ readonly valueProperty: "pokerHands";
168
+ readonly valueIsList: true;
169
+ };
170
+ readonly pokerHands: {
171
+ readonly clause: "PokerHandClause";
172
+ readonly valueProperty: "pokerHands";
173
+ readonly valueIsList: true;
174
+ };
175
+ readonly startingDraw: {
176
+ readonly clause: "StartingDrawClause";
177
+ readonly valueProperty: "label";
178
+ readonly valueIsList: false;
179
+ };
180
+ readonly luckyMoney: {
181
+ readonly clause: "LuckyMoneyClause";
182
+ readonly valueProperty: "rolls";
183
+ readonly valueIsList: true;
184
+ };
185
+ readonly luckyMult: {
186
+ readonly clause: "LuckyMultClause";
187
+ readonly valueProperty: "rolls";
188
+ readonly valueIsList: true;
189
+ };
190
+ readonly misprintMult: {
191
+ readonly clause: "MisprintMultClause";
192
+ readonly valueProperty: "rolls";
193
+ readonly valueIsList: true;
194
+ };
195
+ readonly wheelOfFortune: {
196
+ readonly clause: "WheelOfFortuneClause";
197
+ readonly valueProperty: "rolls";
198
+ readonly valueIsList: true;
199
+ };
200
+ readonly wheelStaysFlipped: {
201
+ readonly clause: "WheelStaysFlippedClause";
202
+ readonly valueProperty: "rolls";
203
+ readonly valueIsList: true;
204
+ };
205
+ readonly glassDestroy: {
206
+ readonly clause: "GlassDestroyClause";
207
+ readonly valueProperty: "rolls";
208
+ readonly valueIsList: true;
209
+ };
210
+ readonly cavendishExtinct: {
211
+ readonly clause: "CavendishExtinctClause";
212
+ readonly valueProperty: "rolls";
213
+ readonly valueIsList: true;
214
+ };
215
+ readonly grosMichelExtinct: {
216
+ readonly clause: "GrosMichelExtinctClause";
217
+ readonly valueProperty: "rolls";
218
+ readonly valueIsList: true;
219
+ };
220
+ readonly spaceLevelup: {
221
+ readonly clause: "SpaceLevelupClause";
222
+ readonly valueProperty: "rolls";
223
+ readonly valueIsList: true;
224
+ };
225
+ readonly businessPayout: {
226
+ readonly clause: "BusinessPayoutClause";
227
+ readonly valueProperty: "rolls";
228
+ readonly valueIsList: true;
229
+ };
230
+ readonly parkingPayout: {
231
+ readonly clause: "ParkingPayoutClause";
232
+ readonly valueProperty: "rolls";
233
+ readonly valueIsList: true;
234
+ };
235
+ readonly bloodstoneTrigger: {
236
+ readonly clause: "BloodstoneTriggerClause";
237
+ readonly valueProperty: "rolls";
238
+ readonly valueIsList: true;
239
+ };
240
+ readonly and: {
241
+ readonly clause: "AndClause";
242
+ readonly valueProperty: "clauses";
243
+ readonly valueIsList: true;
244
+ };
245
+ readonly or: {
246
+ readonly clause: "OrClause";
247
+ readonly valueProperty: "clauses";
248
+ readonly valueIsList: true;
249
+ };
250
+ };
251
+ /** Clause class -> every key the loader maps on it (camelCase; unknown keys are rejected). */
252
+ export declare const CLAUSE_KEYS: Record<string, readonly string[]>;
253
+ /** "<ClauseClass>.<sources key>" -> every key the loader maps inside that sources block. */
254
+ export declare const SOURCE_KEYS: Record<string, readonly string[]>;
255
+ /** Enums/MotelyJokerSticker.cs — the one item enum motely-wasm does not export. */
256
+ export declare const MOTELY_JOKER_STICKER: readonly string[];
@@ -0,0 +1,8 @@
1
+ import { CompletionContext, CompletionResult } from '@codemirror/autocomplete';
2
+ /**
3
+ * Completion: after `key:` the engine's names for that key (`legendaryJoker: ` → the five
4
+ * legendaries); elsewhere every key the loader maps.
5
+ */
6
+ export declare function jamlCompletionSource(context: CompletionContext): CompletionResult | null;
7
+ /** Lint from the engine loader's verdict, pinned to the line its message names. */
8
+ export declare const jamlLinter: import('@codemirror/state').Extension;
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": "8.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,7 +77,6 @@
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
81
  "zod": "^4.6.5"
83
82
  },
@@ -120,7 +119,6 @@
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",
126
124
  "decode:check": "node scripts/check-decoder.mjs",
@@ -131,6 +129,7 @@
131
129
  "build-storybook": "pnpm run build && storybook build",
132
130
  "lint": "eslint .",
133
131
  "design:detect": "node .agents/skills/impeccable/scripts/detect.mjs --json src",
134
- "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"
135
134
  }
136
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;