jaml-ui 4.4.0 → 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.
- package/assets/jammy-seed-mascot.png +0 -0
- package/dist/assets/8BitDeck-B09C1jGy.png +0 -0
- package/dist/assets/BlindChips-Bnvhn76w.png +0 -0
- package/dist/assets/Boosters-Bqv_YhIn.png +0 -0
- package/dist/assets/Editions-B3YPqPOl.png +0 -0
- package/dist/assets/Enhancers-DhIlUuTX.png +0 -0
- package/dist/assets/Jokers-1egXSFFQ.png +0 -0
- package/dist/assets/Tarots-DkrFk7iW.png +0 -0
- package/dist/assets/Vouchers-Cdp8BeSE.png +0 -0
- package/dist/assets/balatro-stake-chips-BdO-bw7c.png +0 -0
- package/dist/assets/jammy-seed-mascot-BdoW3O33.png +0 -0
- package/dist/assets/m6x11plus-C8RqtTtG.ttf +0 -0
- package/dist/assets/stickers-B6y5vEyc.png +0 -0
- package/dist/assets/tags-BdxcVWR4.png +0 -0
- package/dist/chunks/JimboSwipeDeck-DbzWak3V.js +2051 -0
- package/dist/chunks/JimboSwipeDeck-DbzWak3V.js.map +1 -0
- package/dist/chunks/spriteMapper-gImEz0wa.js +501 -0
- package/dist/chunks/spriteMapper-gImEz0wa.js.map +1 -0
- package/dist/components/DailyRitualView.d.ts +17 -0
- package/dist/components/DeckStakePicker.d.ts +12 -0
- package/dist/components/JamlIdeToolbar.d.ts +2 -5
- package/dist/components/JamlIdeVisual.d.ts +2 -1
- package/dist/components/Jamlyzer.d.ts +14 -2
- package/dist/components/JamlyzerBulk.d.ts +5 -4
- package/dist/components/JamlyzerView.d.ts +1 -12
- package/dist/components/SeedLab.d.ts +12 -0
- package/dist/components/jamlSeedUtils.d.ts +1 -0
- package/dist/components/jamlyzer/JamlyzerAnteDetails.d.ts +4 -0
- package/dist/components/jamlyzer/JamlyzerErraticDeck.d.ts +2 -2
- package/dist/components/jamlyzer/JamlyzerPackSection.d.ts +1 -5
- package/dist/components/jamlyzer/JamlyzerPulls.d.ts +2 -2
- package/dist/components/jamlyzer/JamlyzerSeedCard.d.ts +21 -0
- package/dist/components/jamlyzer/JamlyzerTape.d.ts +10 -0
- package/dist/components/jamlyzer/highlight.d.ts +3 -3
- package/dist/core.js +2 -2
- package/dist/decode/motelyItemDecoder.d.ts +1 -0
- package/dist/decode/motelySprite.d.ts +10 -13
- package/dist/decode/motelySpriteLut.generated.d.ts +2 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.js +20802 -17361
- package/dist/index.js.map +1 -1
- package/dist/json-render/JimboJsonRenderer.d.ts +21 -0
- package/dist/json-render/catalog.d.ts +304 -180
- package/dist/json-render/index.d.ts +5 -30
- package/dist/json-render/registry.d.ts +2 -12
- package/dist/lib/daily/ritual.d.ts +43 -0
- package/dist/lib/jaml/{parseClauses.d.ts → jaml.d.ts} +17 -13
- package/dist/lib/jaml/rarity.d.ts +53 -0
- package/dist/lib/jaml/rarityData.generated.d.ts +727 -0
- package/dist/ui/JimboApp.d.ts +8 -6
- package/dist/ui/JimboBackground.d.ts +5 -13
- package/dist/ui/JimboButton.d.ts +1 -1
- package/dist/ui/JimboDock.d.ts +21 -0
- package/dist/ui/JimboMascot.d.ts +51 -5
- package/dist/ui/JimboOrbitalMenu.d.ts +81 -9
- package/dist/ui/JimboPanelSpinner.d.ts +14 -0
- package/dist/ui/JimboSeedCopyChip.d.ts +1 -2
- package/dist/ui/JimboShopBelt.d.ts +9 -0
- package/dist/ui/dockTree.d.ts +31 -0
- package/dist/ui/hooks.d.ts +1 -1
- package/dist/ui/jammySeedMascotImage.d.ts +1 -1
- package/dist/ui/jimbo.css +1 -1
- package/dist/ui/orbitalLayout.d.ts +149 -0
- package/dist/ui/orbitalMenuStore.d.ts +70 -0
- package/dist/ui/tokens.d.ts +9 -36
- package/dist/ui/useMotionPreference.d.ts +19 -0
- package/dist/ui.d.ts +17 -3
- package/dist/ui.js +77 -34
- package/dist/vocab.d.ts +26 -0
- package/package.json +36 -40
- package/README.md +0 -78
- package/assets/fonts/README.md +0 -14
- package/dist/chunks/JimboSwipeDeck-Cbe5Jdmw.js +0 -986
- package/dist/chunks/JimboSwipeDeck-Cbe5Jdmw.js.map +0 -1
- package/dist/chunks/motelyItemDecoder-Cb-RjvQ0.js +0 -692
- package/dist/chunks/motelyItemDecoder-Cb-RjvQ0.js.map +0 -1
- package/dist/chunks/spriteMapper-Dfr2_j0_.js +0 -501
- package/dist/chunks/spriteMapper-Dfr2_j0_.js.map +0 -1
- package/dist/components/jamlyzer/JamlyzerRail.d.ts +0 -14
- package/dist/json-render/builders/analyzer.d.ts +0 -23
- package/dist/json-render/builders/encyclopedia.d.ts +0 -14
- package/dist/json-render/builders/search.d.ts +0 -24
- package/dist/json-render/components/domain.d.ts +0 -59
- package/dist/json-render/components/game.d.ts +0 -18
- package/dist/json-render/components/layout.d.ts +0 -47
- package/dist/json-render/components/mascot.d.ts +0 -23
- package/dist/json-render/components/reference.d.ts +0 -39
- package/dist/json-render/engine.d.ts +0 -38
- package/dist/json-render/knowledge/bosses.d.ts +0 -18
- package/dist/json-render/knowledge/decks.d.ts +0 -22
- package/dist/json-render/knowledge/jokers.d.ts +0 -23
- package/dist/json-render/knowledge/synergies.d.ts +0 -21
- package/dist/lib/motely/jamlParse.d.ts +0 -4
- package/dist/lib/motely/runtime.d.ts +0 -1
- package/dist/motely.d.ts +0 -4
- package/dist/motely.js +0 -84
- package/dist/motely.js.map +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ReactSpec } from '@json-render/react';
|
|
3
|
+
import { Spec } from '@json-render/core';
|
|
4
|
+
import { jimboCatalog } from './catalog.js';
|
|
5
|
+
export interface JimboJsonRendererProps {
|
|
6
|
+
/** The AI-generated JSON UI specification */
|
|
7
|
+
spec: ReactSpec<typeof jimboCatalog> | Spec | null;
|
|
8
|
+
/** Whether the spec is currently streaming / loading from an LLM */
|
|
9
|
+
loading?: boolean;
|
|
10
|
+
/** Optional container className */
|
|
11
|
+
className?: string;
|
|
12
|
+
/** Optional container style */
|
|
13
|
+
style?: React.CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Jimbo Generative UI Renderer (powered by Vercel Labs `@json-render`).
|
|
17
|
+
*
|
|
18
|
+
* Automatically mounts inside `<JimboApp>` so all generated components receive
|
|
19
|
+
* the authentic pixel font, felt background, and zero-flex CSS Grid layout.
|
|
20
|
+
*/
|
|
21
|
+
export declare function JimboJsonRenderer({ spec, loading, className, style, }: JimboJsonRendererProps): React.JSX.Element | null;
|
|
@@ -1,204 +1,328 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Jimbo generative-UI catalog for Vercel Labs' `@json-render`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Defines the type-safe catalog of Jimbo design system components and
|
|
6
|
+
* Balatro card sprites that an AI model may emit specs against.
|
|
7
7
|
*/
|
|
8
|
-
export declare const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
8
|
+
export declare const jimboCatalog: import('@json-render/core').Catalog<{
|
|
9
|
+
spec: import('@json-render/core').SchemaType<"object", {
|
|
10
|
+
root: import('@json-render/core').SchemaType<"string", unknown>;
|
|
11
|
+
elements: import('@json-render/core').SchemaType<"record", import('@json-render/core').SchemaType<"object", {
|
|
12
|
+
type: import('@json-render/core').SchemaType<"ref", string>;
|
|
13
|
+
props: import('@json-render/core').SchemaType<"propsOf", string>;
|
|
14
|
+
children: import('@json-render/core').SchemaType<"array", import('@json-render/core').SchemaType<"string", unknown>>;
|
|
15
|
+
slots: {
|
|
16
|
+
optional: true;
|
|
17
|
+
kind: "record";
|
|
18
|
+
inner?: import('@json-render/core').SchemaType<"array", import('@json-render/core').SchemaType<"string", unknown>> | undefined;
|
|
19
|
+
};
|
|
20
|
+
visible: {
|
|
21
|
+
optional: true;
|
|
22
|
+
kind: "any";
|
|
23
|
+
inner?: unknown;
|
|
24
|
+
};
|
|
25
|
+
repeat: {
|
|
26
|
+
optional: true;
|
|
27
|
+
kind: "any";
|
|
28
|
+
inner?: unknown;
|
|
29
|
+
};
|
|
30
|
+
}>>;
|
|
31
|
+
}>;
|
|
32
|
+
catalog: import('@json-render/core').SchemaType<"object", {
|
|
33
|
+
components: import('@json-render/core').SchemaType<"map", {
|
|
34
|
+
props: import('@json-render/core').SchemaType<"zod", unknown>;
|
|
35
|
+
slots: import('@json-render/core').SchemaType<"array", import('@json-render/core').SchemaType<"string", unknown>>;
|
|
36
|
+
description: import('@json-render/core').SchemaType<"string", unknown>;
|
|
37
|
+
example: import('@json-render/core').SchemaType<"any", unknown>;
|
|
38
|
+
}>;
|
|
39
|
+
actions: import('@json-render/core').SchemaType<"map", {
|
|
40
|
+
params: import('@json-render/core').SchemaType<"zod", unknown>;
|
|
41
|
+
description: import('@json-render/core').SchemaType<"string", unknown>;
|
|
42
|
+
}>;
|
|
43
|
+
}>;
|
|
44
|
+
}, {
|
|
45
|
+
components: {
|
|
46
|
+
JimboPanel: {
|
|
47
|
+
props: z.ZodObject<{
|
|
48
|
+
title: z.ZodOptional<z.ZodString>;
|
|
49
|
+
tone: z.ZodOptional<z.ZodEnum<{
|
|
50
|
+
red: "red";
|
|
51
|
+
orange: "orange";
|
|
52
|
+
blue: "blue";
|
|
53
|
+
green: "green";
|
|
54
|
+
purple: "purple";
|
|
55
|
+
gold: "gold";
|
|
56
|
+
dark: "dark";
|
|
57
|
+
}>>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
slots: string[];
|
|
60
|
+
description: string;
|
|
61
|
+
example: {
|
|
62
|
+
title: string;
|
|
63
|
+
tone: string;
|
|
64
|
+
};
|
|
39
65
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
66
|
+
JimboInnerPanel: {
|
|
67
|
+
props: z.ZodObject<{
|
|
68
|
+
className: z.ZodOptional<z.ZodString>;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
slots: string[];
|
|
71
|
+
description: string;
|
|
72
|
+
example: {};
|
|
45
73
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
74
|
+
JimboRow: {
|
|
75
|
+
props: z.ZodObject<{
|
|
76
|
+
gap: z.ZodOptional<z.ZodEnum<{
|
|
77
|
+
xs: "xs";
|
|
78
|
+
sm: "sm";
|
|
79
|
+
md: "md";
|
|
80
|
+
lg: "lg";
|
|
81
|
+
}>>;
|
|
82
|
+
wrap: z.ZodOptional<z.ZodBoolean>;
|
|
83
|
+
align: z.ZodOptional<z.ZodEnum<{
|
|
84
|
+
start: "start";
|
|
85
|
+
center: "center";
|
|
86
|
+
end: "end";
|
|
87
|
+
stretch: "stretch";
|
|
88
|
+
}>>;
|
|
89
|
+
justify: z.ZodOptional<z.ZodEnum<{
|
|
90
|
+
start: "start";
|
|
91
|
+
center: "center";
|
|
92
|
+
end: "end";
|
|
93
|
+
between: "between";
|
|
94
|
+
}>>;
|
|
95
|
+
}, z.core.$strip>;
|
|
96
|
+
slots: string[];
|
|
97
|
+
description: string;
|
|
98
|
+
example: {
|
|
99
|
+
gap: string;
|
|
100
|
+
align: string;
|
|
101
|
+
};
|
|
51
102
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
103
|
+
JimboStack: {
|
|
104
|
+
props: z.ZodObject<{
|
|
105
|
+
gap: z.ZodOptional<z.ZodEnum<{
|
|
106
|
+
xs: "xs";
|
|
107
|
+
sm: "sm";
|
|
108
|
+
md: "md";
|
|
109
|
+
lg: "lg";
|
|
110
|
+
}>>;
|
|
111
|
+
align: z.ZodOptional<z.ZodEnum<{
|
|
112
|
+
start: "start";
|
|
113
|
+
center: "center";
|
|
114
|
+
end: "end";
|
|
115
|
+
stretch: "stretch";
|
|
116
|
+
}>>;
|
|
117
|
+
}, z.core.$strip>;
|
|
118
|
+
slots: string[];
|
|
119
|
+
description: string;
|
|
120
|
+
example: {
|
|
121
|
+
gap: string;
|
|
122
|
+
align: string;
|
|
123
|
+
};
|
|
59
124
|
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
seedsPerSecond?: number;
|
|
68
|
-
elapsed?: string;
|
|
69
|
-
};
|
|
70
|
-
description: string;
|
|
71
|
-
};
|
|
72
|
-
ErrorBanner: {
|
|
73
|
-
props: {
|
|
74
|
-
message: string;
|
|
75
|
-
onDismiss?: boolean;
|
|
125
|
+
JimboBox: {
|
|
126
|
+
props: z.ZodObject<{
|
|
127
|
+
className: z.ZodOptional<z.ZodString>;
|
|
128
|
+
}, z.core.$strip>;
|
|
129
|
+
slots: string[];
|
|
130
|
+
description: string;
|
|
131
|
+
example: {};
|
|
76
132
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
133
|
+
JamlGameCard: {
|
|
134
|
+
props: z.ZodObject<{
|
|
135
|
+
name: z.ZodString;
|
|
136
|
+
type: z.ZodDefault<z.ZodEnum<{
|
|
137
|
+
playing: "playing";
|
|
138
|
+
joker: "joker";
|
|
139
|
+
consumable: "consumable";
|
|
140
|
+
}>>;
|
|
141
|
+
scale: z.ZodOptional<z.ZodNumber>;
|
|
142
|
+
}, z.core.$strip>;
|
|
143
|
+
slots: never[];
|
|
144
|
+
description: string;
|
|
145
|
+
example: {
|
|
146
|
+
name: string;
|
|
147
|
+
type: string;
|
|
148
|
+
scale: number;
|
|
149
|
+
};
|
|
82
150
|
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
description: string;
|
|
105
|
-
};
|
|
106
|
-
JokerBadge: {
|
|
107
|
-
props: {
|
|
108
|
-
name: string;
|
|
109
|
-
edition?: "Foil" | "Holographic" | "Polychrome" | "Negative";
|
|
110
|
-
rarity?: "Common" | "Uncommon" | "Rare" | "Legendary";
|
|
151
|
+
StandardCard: {
|
|
152
|
+
props: z.ZodObject<{
|
|
153
|
+
rank: z.ZodString;
|
|
154
|
+
suit: z.ZodDefault<z.ZodEnum<{
|
|
155
|
+
Hearts: "Hearts";
|
|
156
|
+
Clubs: "Clubs";
|
|
157
|
+
Diamonds: "Diamonds";
|
|
158
|
+
Spades: "Spades";
|
|
159
|
+
}>>;
|
|
160
|
+
enhancement: z.ZodOptional<z.ZodString>;
|
|
161
|
+
edition: z.ZodOptional<z.ZodString>;
|
|
162
|
+
seal: z.ZodOptional<z.ZodString>;
|
|
163
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
164
|
+
}, z.core.$strip>;
|
|
165
|
+
slots: never[];
|
|
166
|
+
description: string;
|
|
167
|
+
example: {
|
|
168
|
+
rank: string;
|
|
169
|
+
suit: string;
|
|
170
|
+
size: number;
|
|
171
|
+
};
|
|
111
172
|
};
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
173
|
+
DeckSprite: {
|
|
174
|
+
props: z.ZodObject<{
|
|
175
|
+
deck: z.ZodDefault<z.ZodString>;
|
|
176
|
+
stake: z.ZodOptional<z.ZodString>;
|
|
177
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
178
|
+
}, z.core.$strip>;
|
|
179
|
+
slots: never[];
|
|
180
|
+
description: string;
|
|
181
|
+
example: {
|
|
182
|
+
deck: string;
|
|
183
|
+
stake: string;
|
|
184
|
+
size: number;
|
|
185
|
+
};
|
|
117
186
|
};
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
scale?: number;
|
|
187
|
+
JamlyzerSeedCard: {
|
|
188
|
+
props: z.ZodObject<{
|
|
189
|
+
seed: z.ZodString;
|
|
190
|
+
score: z.ZodOptional<z.ZodNumber>;
|
|
191
|
+
pinned: z.ZodOptional<z.ZodBoolean>;
|
|
192
|
+
}, z.core.$strip>;
|
|
193
|
+
slots: never[];
|
|
194
|
+
description: string;
|
|
195
|
+
example: {
|
|
196
|
+
seed: string;
|
|
197
|
+
score: number;
|
|
198
|
+
pinned: boolean;
|
|
131
199
|
};
|
|
132
200
|
};
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
201
|
+
JimboButton: {
|
|
202
|
+
props: z.ZodObject<{
|
|
203
|
+
label: z.ZodString;
|
|
204
|
+
tone: z.ZodDefault<z.ZodEnum<{
|
|
205
|
+
red: "red";
|
|
206
|
+
orange: "orange";
|
|
207
|
+
blue: "blue";
|
|
208
|
+
green: "green";
|
|
209
|
+
}>>;
|
|
210
|
+
size: z.ZodDefault<z.ZodEnum<{
|
|
211
|
+
xs: "xs";
|
|
212
|
+
sm: "sm";
|
|
213
|
+
md: "md";
|
|
214
|
+
lg: "lg";
|
|
215
|
+
}>>;
|
|
216
|
+
action: z.ZodOptional<z.ZodString>;
|
|
217
|
+
}, z.core.$strip>;
|
|
218
|
+
slots: never[];
|
|
219
|
+
description: string;
|
|
220
|
+
example: {
|
|
140
221
|
label: string;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
onMenuAction?: boolean;
|
|
222
|
+
tone: string;
|
|
223
|
+
size: string;
|
|
224
|
+
};
|
|
145
225
|
};
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
226
|
+
JimboBadge: {
|
|
227
|
+
props: z.ZodObject<{
|
|
228
|
+
text: z.ZodString;
|
|
229
|
+
tone: z.ZodDefault<z.ZodEnum<{
|
|
230
|
+
red: "red";
|
|
231
|
+
orange: "orange";
|
|
232
|
+
blue: "blue";
|
|
233
|
+
green: "green";
|
|
234
|
+
purple: "purple";
|
|
235
|
+
grey: "grey";
|
|
236
|
+
dark: "dark";
|
|
237
|
+
}>>;
|
|
238
|
+
size: z.ZodDefault<z.ZodEnum<{
|
|
239
|
+
sm: "sm";
|
|
240
|
+
md: "md";
|
|
241
|
+
}>>;
|
|
242
|
+
}, z.core.$strip>;
|
|
243
|
+
slots: never[];
|
|
244
|
+
description: string;
|
|
245
|
+
example: {
|
|
246
|
+
text: string;
|
|
247
|
+
tone: string;
|
|
248
|
+
size: string;
|
|
249
|
+
};
|
|
156
250
|
};
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
251
|
+
JimboText: {
|
|
252
|
+
props: z.ZodObject<{
|
|
253
|
+
text: z.ZodString;
|
|
254
|
+
size: z.ZodDefault<z.ZodEnum<{
|
|
255
|
+
title: "title";
|
|
256
|
+
micro: "micro";
|
|
257
|
+
xs: "xs";
|
|
258
|
+
sm: "sm";
|
|
259
|
+
md: "md";
|
|
260
|
+
lg: "lg";
|
|
261
|
+
}>>;
|
|
262
|
+
tone: z.ZodDefault<z.ZodEnum<{
|
|
263
|
+
red: "red";
|
|
264
|
+
blue: "blue";
|
|
265
|
+
green: "green";
|
|
266
|
+
gold: "gold";
|
|
267
|
+
grey: "grey";
|
|
268
|
+
white: "white";
|
|
269
|
+
}>>;
|
|
270
|
+
}, z.core.$strip>;
|
|
271
|
+
slots: never[];
|
|
272
|
+
description: string;
|
|
273
|
+
example: {
|
|
274
|
+
text: string;
|
|
275
|
+
tone: string;
|
|
276
|
+
size: string;
|
|
277
|
+
};
|
|
163
278
|
};
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
279
|
+
JimboSeedCopyChip: {
|
|
280
|
+
props: z.ZodObject<{
|
|
281
|
+
value: z.ZodString;
|
|
282
|
+
}, z.core.$strip>;
|
|
283
|
+
slots: never[];
|
|
284
|
+
description: string;
|
|
285
|
+
example: {
|
|
286
|
+
value: string;
|
|
287
|
+
};
|
|
169
288
|
};
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
289
|
+
JimboStatusPill: {
|
|
290
|
+
props: z.ZodObject<{
|
|
291
|
+
label: z.ZodString;
|
|
292
|
+
status: z.ZodDefault<z.ZodEnum<{
|
|
293
|
+
error: "error";
|
|
294
|
+
idle: "idle";
|
|
295
|
+
paused: "paused";
|
|
296
|
+
running: "running";
|
|
297
|
+
ok: "ok";
|
|
298
|
+
}>>;
|
|
299
|
+
}, z.core.$strip>;
|
|
300
|
+
slots: never[];
|
|
301
|
+
description: string;
|
|
302
|
+
example: {
|
|
303
|
+
label: string;
|
|
304
|
+
status: string;
|
|
305
|
+
};
|
|
175
306
|
};
|
|
176
|
-
description: string;
|
|
177
307
|
};
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
308
|
+
actions: {
|
|
309
|
+
copySeed: {
|
|
310
|
+
params: z.ZodObject<{
|
|
311
|
+
seed: z.ZodString;
|
|
312
|
+
}, z.core.$strip>;
|
|
313
|
+
description: string;
|
|
181
314
|
};
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
315
|
+
selectSeed: {
|
|
316
|
+
params: z.ZodObject<{
|
|
317
|
+
seed: z.ZodString;
|
|
318
|
+
}, z.core.$strip>;
|
|
319
|
+
description: string;
|
|
187
320
|
};
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
321
|
+
loadJaml: {
|
|
322
|
+
params: z.ZodObject<{
|
|
323
|
+
jaml: z.ZodString;
|
|
324
|
+
}, z.core.$strip>;
|
|
325
|
+
description: string;
|
|
193
326
|
};
|
|
194
|
-
description: string;
|
|
195
327
|
};
|
|
196
|
-
}
|
|
197
|
-
export type BalatroCatalog = typeof balatroCatalog;
|
|
198
|
-
export type BalatroComponentName = keyof BalatroCatalog;
|
|
199
|
-
/**
|
|
200
|
-
* Extract the props type for a given catalog component.
|
|
201
|
-
*/
|
|
202
|
-
export type CatalogProps<K extends BalatroComponentName> = BalatroCatalog[K] extends {
|
|
203
|
-
props: infer P;
|
|
204
|
-
} ? P : never;
|
|
328
|
+
}>;
|
|
@@ -1,30 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export
|
|
3
|
-
export {
|
|
4
|
-
export type
|
|
5
|
-
export {
|
|
6
|
-
export type { BalatroRegistry } from './registry.js';
|
|
7
|
-
export { Panel, Stack, Grid, Text, Spacer, Divider, Badge, } from './components/layout.js';
|
|
8
|
-
export type { PanelProps, StackProps, GridProps, TextProps, SpacerProps, DividerProps, BadgeProps, } from './components/layout.js';
|
|
9
|
-
export { SearchStats, ErrorBanner, LoadingPulse, SeedCard, SeedList, JokerBadge, EditionBadge, } from './components/domain.js';
|
|
10
|
-
export type { SearchStatsProps, ErrorBannerProps, LoadingPulseProps, SeedCardProps, SeedListProps, JokerBadgeProps, EditionBadgeProps, } from './components/domain.js';
|
|
11
|
-
export { JamlGameCard } from './components/game.js';
|
|
12
|
-
export type { JamlGameCardProps } from './components/game.js';
|
|
13
|
-
export { JammyMascot, JammyOrbitalMenu } from './components/mascot.js';
|
|
14
|
-
export type { JammyMascotProps, JammyOrbitalMenuProps, JammyOrbitalMenuItem, } from './components/mascot.js';
|
|
15
|
-
export { JokerCard, SynergyCard, BossBlindCard, DeckCard, StakeCard, StrategyAdvisor, } from './components/reference.js';
|
|
16
|
-
export type { JokerCardProps, SynergyCardProps, BossBlindCardProps, DeckCardProps, StakeCardProps, StrategyAdvisorProps, } from './components/reference.js';
|
|
17
|
-
export { buildSearchSpec } from './builders/search.js';
|
|
18
|
-
export type { SearchResult, SearchParams } from './builders/search.js';
|
|
19
|
-
export { buildEncyclopediaSpec } from './builders/encyclopedia.js';
|
|
20
|
-
export type { EncyclopediaParams } from './builders/encyclopedia.js';
|
|
21
|
-
export { buildAnalyzerSpec } from './builders/analyzer.js';
|
|
22
|
-
export type { AnalyzerResult } from './builders/analyzer.js';
|
|
23
|
-
export { JOKERS, getJoker, getJokersByCategory, getSynergies } from './knowledge/jokers.js';
|
|
24
|
-
export type { JokerInfo, JokerRarity, JokerCategory } from './knowledge/jokers.js';
|
|
25
|
-
export { SYNERGIES, findSynergies, findSynergiesByTag, getRecommendedSynergies } from './knowledge/synergies.js';
|
|
26
|
-
export type { SynergyInfo } from './knowledge/synergies.js';
|
|
27
|
-
export { DECKS, STAKES, getDeck, getStake } from './knowledge/decks.js';
|
|
28
|
-
export type { DeckInfo, StakeInfo } from './knowledge/decks.js';
|
|
29
|
-
export { BOSSES, FINISHERS, getBoss, getBossesByCategory, getAllBosses } from './knowledge/bosses.js';
|
|
30
|
-
export type { BossInfo, BossCategory } from './knowledge/bosses.js';
|
|
1
|
+
export { jimboCatalog } from './catalog.js';
|
|
2
|
+
export { jimboRegistry, jimboHandlers, executeJimboAction, } from './registry.js';
|
|
3
|
+
export { JimboJsonRenderer, type JimboJsonRendererProps, } from './JimboJsonRenderer.js';
|
|
4
|
+
export { defineCatalog, defineDirective, validateSpec, autoFixSpec, buildUserPrompt, type Catalog, type Spec, type InferSpec, type InferCatalogComponents, } from '@json-render/core';
|
|
5
|
+
export { Renderer, defineRegistry, createRenderer, StateProvider, JSONUIProvider, useStateStore, useStateValue, type ReactSpec, type ReactSchema, } from '@json-render/react';
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
import { Registry } from './engine.js';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Maps catalog component names to real React implementations.
|
|
6
|
-
* This is the ONLY place where catalog names are bound to code.
|
|
7
|
-
* Add new components here → they instantly work in json-render specs.
|
|
2
|
+
* Official Jimbo Component Registry for Vercel `@json-render/react`.
|
|
8
3
|
*/
|
|
9
|
-
export declare const
|
|
10
|
-
/**
|
|
11
|
-
* Type-safe registry helper.
|
|
12
|
-
* Ensures all catalog names have a matching component at compile time.
|
|
13
|
-
*/
|
|
14
|
-
export type BalatroRegistry = typeof balatroRegistry;
|
|
4
|
+
export declare const jimboRegistry: import('@json-render/react').ComponentRegistry, jimboHandlers: (getSetState: () => import('@json-render/react').SetState | undefined, getState: () => import('@json-render/core').StateModel) => Record<string, (params: Record<string, unknown>) => Promise<void>>, executeJimboAction: (actionName: string, params: Record<string, unknown> | undefined, setState: import('@json-render/react').SetState, state?: import('@json-render/core').StateModel) => Promise<void>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A daily ritual is a single JAML file. Nothing is hardcoded: the filter body is
|
|
3
|
+
* real, engine-valid JAML (deck/stake/must/should), and the presentation metadata
|
|
4
|
+
* rides as `# key: value` header comments so the validator never sees a key it
|
|
5
|
+
* would reject. One `.jaml` file fully defines a ritual — title, flavor, hint, the
|
|
6
|
+
* cards to show, and the filter to search.
|
|
7
|
+
*
|
|
8
|
+
* This is the shape `DailyRitualView` renders and the app authors in the UX. It is
|
|
9
|
+
* pure parsing — no React, no hooks, no engine — so it runs in Node and the browser
|
|
10
|
+
* alike and never needs a client boundary.
|
|
11
|
+
*/
|
|
12
|
+
export interface DailyRitual {
|
|
13
|
+
/** Display title. From the JAML `name:` key, or a `# title:` comment, else "Daily Ritual". */
|
|
14
|
+
title: string;
|
|
15
|
+
/** One-line summary. From the JAML `description:` key or a `# description:` comment. */
|
|
16
|
+
description?: string;
|
|
17
|
+
/** Metadata carried as header comments so the filter stays engine-valid. */
|
|
18
|
+
emoji?: string;
|
|
19
|
+
flavor?: string;
|
|
20
|
+
hint?: string;
|
|
21
|
+
/** Rank to spotlight as a card sprite, e.g. "2", "K", "A". */
|
|
22
|
+
focusRank?: string;
|
|
23
|
+
/** Joker to spotlight as a card sprite, e.g. "WeeJoker". */
|
|
24
|
+
targetJoker?: string;
|
|
25
|
+
/** Optional theme label, e.g. "Foil Friday". */
|
|
26
|
+
theme?: string;
|
|
27
|
+
/** The raw JAML source, exactly as authored — the single source of truth. */
|
|
28
|
+
jaml: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Parse a ritual from its JAML source.
|
|
32
|
+
*
|
|
33
|
+
* Two channels, by design:
|
|
34
|
+
* - `# key: value` comment lines carry presentation metadata (emoji, flavor, hint,
|
|
35
|
+
* focusRank, targetJoker, theme, and optionally title/description).
|
|
36
|
+
* - top-level `name:` and `description:` JAML keys are read as title/description
|
|
37
|
+
* when no comment overrides them, so a ritual authored as plain JAML still titles
|
|
38
|
+
* itself. Only single-line scalars are read here; a block scalar (`>` or `|`) is
|
|
39
|
+
* left to the metadata comment instead of half-parsed.
|
|
40
|
+
*
|
|
41
|
+
* The raw text is preserved verbatim on `.jaml`; the filter body is never rewritten.
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseRitual(jamlText: string): DailyRitual;
|