@cardanvil/frame-kit 0.2.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/LICENSE +21 -0
- package/README.md +137 -0
- package/dist/authoring/index.d.ts +2 -0
- package/dist/authoring/index.js +2 -0
- package/dist/authoring/layoutDefaults.d.ts +6 -0
- package/dist/authoring/layoutDefaults.js +80 -0
- package/dist/authoring/omit.d.ts +2 -0
- package/dist/authoring/omit.js +14 -0
- package/dist/cli/api.d.ts +34 -0
- package/dist/cli/api.js +188 -0
- package/dist/cli/build.d.ts +36 -0
- package/dist/cli/build.js +222 -0
- package/dist/cli/bundle.d.ts +23 -0
- package/dist/cli/bundle.js +58 -0
- package/dist/cli/devUrl.d.ts +10 -0
- package/dist/cli/devUrl.js +41 -0
- package/dist/cli/discover.d.ts +25 -0
- package/dist/cli/discover.js +116 -0
- package/dist/cli/emitSchemas.d.ts +2 -0
- package/dist/cli/emitSchemas.js +13 -0
- package/dist/cli/errors.d.ts +8 -0
- package/dist/cli/errors.js +11 -0
- package/dist/cli/frameIndex.d.ts +115 -0
- package/dist/cli/frameIndex.js +104 -0
- package/dist/cli/hash.d.ts +14 -0
- package/dist/cli/hash.js +32 -0
- package/dist/cli/imageSize.d.ts +13 -0
- package/dist/cli/imageSize.js +72 -0
- package/dist/cli/index.d.ts +18 -0
- package/dist/cli/index.js +18 -0
- package/dist/cli/loadFrame.d.ts +24 -0
- package/dist/cli/loadFrame.js +90 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.js +228 -0
- package/dist/cli/report.d.ts +35 -0
- package/dist/cli/report.js +74 -0
- package/dist/cli/schema.d.ts +33 -0
- package/dist/cli/schema.js +51 -0
- package/dist/cli/stableJson.d.ts +11 -0
- package/dist/cli/stableJson.js +27 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/manifest/contract.d.ts +10503 -0
- package/dist/manifest/contract.js +87 -0
- package/dist/manifest/deserialize.d.ts +19 -0
- package/dist/manifest/deserialize.js +23 -0
- package/dist/manifest/index.d.ts +4 -0
- package/dist/manifest/index.js +4 -0
- package/dist/manifest/serialize.d.ts +35 -0
- package/dist/manifest/serialize.js +44 -0
- package/dist/manifest/testFrame.d.ts +9 -0
- package/dist/manifest/testFrame.js +53 -0
- package/dist/manifest/walk.d.ts +21 -0
- package/dist/manifest/walk.js +111 -0
- package/dist/schema/assetUrl.d.ts +27 -0
- package/dist/schema/assetUrl.js +28 -0
- package/dist/schema/frame.d.ts +26467 -0
- package/dist/schema/frame.js +312 -0
- package/dist/schema/frameAssets.d.ts +539 -0
- package/dist/schema/frameAssets.js +183 -0
- package/dist/schema/frameMeta.d.ts +24 -0
- package/dist/schema/frameMeta.js +48 -0
- package/dist/schema/index.d.ts +5 -0
- package/dist/schema/index.js +5 -0
- package/dist/schema/layout.d.ts +101 -0
- package/dist/schema/layout.js +59 -0
- package/package.json +62 -0
- package/schema/frame-index.schema.json +233 -0
- package/schema/frame-meta.schema.json +54 -0
|
@@ -0,0 +1,539 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Canonical frame color codes: WUBRG, gold (m), artifact (a), colorless (c),
|
|
4
|
+
* land (l), vehicle (v). Land is always the lowercase "l" — some legacy configs
|
|
5
|
+
* also shipped an uppercase "L" alias pointing at the same art, but the nested
|
|
6
|
+
* configs standardize on "l".
|
|
7
|
+
*/
|
|
8
|
+
export declare const FRAME_COLORS: readonly ["w", "u", "b", "r", "g", "m", "a", "c", "l", "v"];
|
|
9
|
+
export declare const FrameColorEnum: z.ZodEnum<{
|
|
10
|
+
w: "w";
|
|
11
|
+
u: "u";
|
|
12
|
+
b: "b";
|
|
13
|
+
r: "r";
|
|
14
|
+
g: "g";
|
|
15
|
+
m: "m";
|
|
16
|
+
a: "a";
|
|
17
|
+
c: "c";
|
|
18
|
+
l: "l";
|
|
19
|
+
v: "v";
|
|
20
|
+
}>;
|
|
21
|
+
export type FrameColor = z.infer<typeof FrameColorEnum>;
|
|
22
|
+
/** Image URLs keyed by frame color. Every frame family is a (partial) color set. */
|
|
23
|
+
export declare const ColorSetSchema: z.ZodRecord<z.ZodEnum<{
|
|
24
|
+
w: "w";
|
|
25
|
+
u: "u";
|
|
26
|
+
b: "b";
|
|
27
|
+
r: "r";
|
|
28
|
+
g: "g";
|
|
29
|
+
m: "m";
|
|
30
|
+
a: "a";
|
|
31
|
+
c: "c";
|
|
32
|
+
l: "l";
|
|
33
|
+
v: "v";
|
|
34
|
+
}> & z.core.$partial, z.ZodString>;
|
|
35
|
+
export type ColorSet = z.infer<typeof ColorSetSchema>;
|
|
36
|
+
/**
|
|
37
|
+
* Scryfall `frame_effects` values that name a specific transform-DFC icon
|
|
38
|
+
* variant (mirrors `ScryfallFrameEffect`'s `*Dfc` members, plus `fandfc`).
|
|
39
|
+
*/
|
|
40
|
+
export declare const DFC_ICON_EFFECTS: readonly ["convertdfc", "sunmoondfc", "compasslanddfc", "originpwdfc", "mooneldrazidfc", "waxingandwaningmoondfc", "fandfc", "upsidedowndfc"];
|
|
41
|
+
export declare const DfcIconEffectEnum: z.ZodEnum<{
|
|
42
|
+
convertdfc: "convertdfc";
|
|
43
|
+
sunmoondfc: "sunmoondfc";
|
|
44
|
+
compasslanddfc: "compasslanddfc";
|
|
45
|
+
originpwdfc: "originpwdfc";
|
|
46
|
+
mooneldrazidfc: "mooneldrazidfc";
|
|
47
|
+
waxingandwaningmoondfc: "waxingandwaningmoondfc";
|
|
48
|
+
fandfc: "fandfc";
|
|
49
|
+
upsidedowndfc: "upsidedowndfc";
|
|
50
|
+
}>;
|
|
51
|
+
export type DfcIconEffect = z.infer<typeof DfcIconEffectEnum>;
|
|
52
|
+
/** DFC icon image URLs keyed by which `frame_effects` variant they render. */
|
|
53
|
+
export declare const DfcIconSetSchema: z.ZodRecord<z.ZodEnum<{
|
|
54
|
+
convertdfc: "convertdfc";
|
|
55
|
+
sunmoondfc: "sunmoondfc";
|
|
56
|
+
compasslanddfc: "compasslanddfc";
|
|
57
|
+
originpwdfc: "originpwdfc";
|
|
58
|
+
mooneldrazidfc: "mooneldrazidfc";
|
|
59
|
+
waxingandwaningmoondfc: "waxingandwaningmoondfc";
|
|
60
|
+
fandfc: "fandfc";
|
|
61
|
+
upsidedowndfc: "upsidedowndfc";
|
|
62
|
+
}> & z.core.$partial, z.ZodString>;
|
|
63
|
+
export type DfcIconSet = z.infer<typeof DfcIconSetSchema>;
|
|
64
|
+
/**
|
|
65
|
+
* Base frames additionally allow "c2" — the hybrid title/type wash used by the
|
|
66
|
+
* two-color hybrid split rendering. "c2" only ever exists in the base family.
|
|
67
|
+
*/
|
|
68
|
+
export declare const BASE_COLORS: readonly ["w", "u", "b", "r", "g", "m", "a", "c", "l", "v", "c2"];
|
|
69
|
+
export declare const BaseColorEnum: z.ZodEnum<{
|
|
70
|
+
w: "w";
|
|
71
|
+
u: "u";
|
|
72
|
+
b: "b";
|
|
73
|
+
r: "r";
|
|
74
|
+
g: "g";
|
|
75
|
+
m: "m";
|
|
76
|
+
a: "a";
|
|
77
|
+
c: "c";
|
|
78
|
+
l: "l";
|
|
79
|
+
v: "v";
|
|
80
|
+
c2: "c2";
|
|
81
|
+
}>;
|
|
82
|
+
export type BaseColor = z.infer<typeof BaseColorEnum>;
|
|
83
|
+
export declare const BaseColorSetSchema: z.ZodRecord<z.ZodEnum<{
|
|
84
|
+
w: "w";
|
|
85
|
+
u: "u";
|
|
86
|
+
b: "b";
|
|
87
|
+
r: "r";
|
|
88
|
+
g: "g";
|
|
89
|
+
m: "m";
|
|
90
|
+
a: "a";
|
|
91
|
+
c: "c";
|
|
92
|
+
l: "l";
|
|
93
|
+
v: "v";
|
|
94
|
+
c2: "c2";
|
|
95
|
+
}> & z.core.$partial, z.ZodString>;
|
|
96
|
+
export type BaseColorSet = z.infer<typeof BaseColorSetSchema>;
|
|
97
|
+
/** Legendary-crown asset sets, grouped by variant. */
|
|
98
|
+
export declare const CrownAssetsSchema: z.ZodObject<{
|
|
99
|
+
base: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
100
|
+
w: "w";
|
|
101
|
+
u: "u";
|
|
102
|
+
b: "b";
|
|
103
|
+
r: "r";
|
|
104
|
+
g: "g";
|
|
105
|
+
m: "m";
|
|
106
|
+
a: "a";
|
|
107
|
+
c: "c";
|
|
108
|
+
l: "l";
|
|
109
|
+
v: "v";
|
|
110
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
111
|
+
ub: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
112
|
+
w: "w";
|
|
113
|
+
u: "u";
|
|
114
|
+
b: "b";
|
|
115
|
+
r: "r";
|
|
116
|
+
g: "g";
|
|
117
|
+
m: "m";
|
|
118
|
+
a: "a";
|
|
119
|
+
c: "c";
|
|
120
|
+
l: "l";
|
|
121
|
+
v: "v";
|
|
122
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
123
|
+
nickname: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
124
|
+
w: "w";
|
|
125
|
+
u: "u";
|
|
126
|
+
b: "b";
|
|
127
|
+
r: "r";
|
|
128
|
+
g: "g";
|
|
129
|
+
m: "m";
|
|
130
|
+
a: "a";
|
|
131
|
+
c: "c";
|
|
132
|
+
l: "l";
|
|
133
|
+
v: "v";
|
|
134
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
135
|
+
nicknameUb: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
136
|
+
w: "w";
|
|
137
|
+
u: "u";
|
|
138
|
+
b: "b";
|
|
139
|
+
r: "r";
|
|
140
|
+
g: "g";
|
|
141
|
+
m: "m";
|
|
142
|
+
a: "a";
|
|
143
|
+
c: "c";
|
|
144
|
+
l: "l";
|
|
145
|
+
v: "v";
|
|
146
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
147
|
+
nyxInsert: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
148
|
+
w: "w";
|
|
149
|
+
u: "u";
|
|
150
|
+
b: "b";
|
|
151
|
+
r: "r";
|
|
152
|
+
g: "g";
|
|
153
|
+
m: "m";
|
|
154
|
+
a: "a";
|
|
155
|
+
c: "c";
|
|
156
|
+
l: "l";
|
|
157
|
+
v: "v";
|
|
158
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
159
|
+
nyxInsertUb: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
160
|
+
w: "w";
|
|
161
|
+
u: "u";
|
|
162
|
+
b: "b";
|
|
163
|
+
r: "r";
|
|
164
|
+
g: "g";
|
|
165
|
+
m: "m";
|
|
166
|
+
a: "a";
|
|
167
|
+
c: "c";
|
|
168
|
+
l: "l";
|
|
169
|
+
v: "v";
|
|
170
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
171
|
+
}, z.core.$strip>;
|
|
172
|
+
export type CrownAssets = z.infer<typeof CrownAssetsSchema>;
|
|
173
|
+
/** Planeswalker ability-icon assets. */
|
|
174
|
+
export declare const PlaneswalkerAssetConfigSchema: z.ZodObject<{
|
|
175
|
+
plus: z.ZodString;
|
|
176
|
+
minus: z.ZodString;
|
|
177
|
+
zero: z.ZodString;
|
|
178
|
+
separator: z.ZodString;
|
|
179
|
+
startingLoyalty: z.ZodString;
|
|
180
|
+
masks: z.ZodOptional<z.ZodObject<{
|
|
181
|
+
regular: z.ZodOptional<z.ZodString>;
|
|
182
|
+
tall: z.ZodOptional<z.ZodString>;
|
|
183
|
+
}, z.core.$strip>>;
|
|
184
|
+
colorlessNicknameMasks: z.ZodOptional<z.ZodObject<{
|
|
185
|
+
regular: z.ZodOptional<z.ZodString>;
|
|
186
|
+
tall: z.ZodOptional<z.ZodString>;
|
|
187
|
+
}, z.core.$strip>>;
|
|
188
|
+
}, z.core.$strip>;
|
|
189
|
+
export type PlaneswalkerAssetConfig = z.infer<typeof PlaneswalkerAssetConfigSchema>;
|
|
190
|
+
/**
|
|
191
|
+
* Saga ability badge/divider + per-color chapter banners. Read-ahead cards use
|
|
192
|
+
* the `bannerTransform`/`bannerTransformMasks` variants. Banner masks live here
|
|
193
|
+
* (not in `masks`) because they are per-banner-variant art wired straight into
|
|
194
|
+
* the saga node, never resolved through the layout-mask path.
|
|
195
|
+
*/
|
|
196
|
+
export declare const SagaAssetConfigSchema: z.ZodObject<{
|
|
197
|
+
badge: z.ZodString;
|
|
198
|
+
divider: z.ZodString;
|
|
199
|
+
banner: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
200
|
+
w: "w";
|
|
201
|
+
u: "u";
|
|
202
|
+
b: "b";
|
|
203
|
+
r: "r";
|
|
204
|
+
g: "g";
|
|
205
|
+
m: "m";
|
|
206
|
+
a: "a";
|
|
207
|
+
c: "c";
|
|
208
|
+
l: "l";
|
|
209
|
+
v: "v";
|
|
210
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
211
|
+
bannerTransform: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
212
|
+
w: "w";
|
|
213
|
+
u: "u";
|
|
214
|
+
b: "b";
|
|
215
|
+
r: "r";
|
|
216
|
+
g: "g";
|
|
217
|
+
m: "m";
|
|
218
|
+
a: "a";
|
|
219
|
+
c: "c";
|
|
220
|
+
l: "l";
|
|
221
|
+
v: "v";
|
|
222
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
223
|
+
bannerMasks: z.ZodOptional<z.ZodObject<{
|
|
224
|
+
right: z.ZodString;
|
|
225
|
+
stripe: z.ZodString;
|
|
226
|
+
}, z.core.$strip>>;
|
|
227
|
+
bannerTransformMasks: z.ZodOptional<z.ZodObject<{
|
|
228
|
+
right: z.ZodString;
|
|
229
|
+
stripe: z.ZodString;
|
|
230
|
+
}, z.core.$strip>>;
|
|
231
|
+
bannerReadAheadMasks: z.ZodOptional<z.ZodObject<{
|
|
232
|
+
right: z.ZodString;
|
|
233
|
+
stripe: z.ZodString;
|
|
234
|
+
}, z.core.$strip>>;
|
|
235
|
+
}, z.core.$strip>;
|
|
236
|
+
export type SagaAssetConfig = z.infer<typeof SagaAssetConfigSchema>;
|
|
237
|
+
/** The full frame-asset tree for a layout. */
|
|
238
|
+
export declare const FrameAssetsSchema: z.ZodObject<{
|
|
239
|
+
base: z.ZodRecord<z.ZodEnum<{
|
|
240
|
+
w: "w";
|
|
241
|
+
u: "u";
|
|
242
|
+
b: "b";
|
|
243
|
+
r: "r";
|
|
244
|
+
g: "g";
|
|
245
|
+
m: "m";
|
|
246
|
+
a: "a";
|
|
247
|
+
c: "c";
|
|
248
|
+
l: "l";
|
|
249
|
+
v: "v";
|
|
250
|
+
c2: "c2";
|
|
251
|
+
}> & z.core.$partial, z.ZodString>;
|
|
252
|
+
tall: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
253
|
+
w: "w";
|
|
254
|
+
u: "u";
|
|
255
|
+
b: "b";
|
|
256
|
+
r: "r";
|
|
257
|
+
g: "g";
|
|
258
|
+
m: "m";
|
|
259
|
+
a: "a";
|
|
260
|
+
c: "c";
|
|
261
|
+
l: "l";
|
|
262
|
+
v: "v";
|
|
263
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
264
|
+
land: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
265
|
+
w: "w";
|
|
266
|
+
u: "u";
|
|
267
|
+
b: "b";
|
|
268
|
+
r: "r";
|
|
269
|
+
g: "g";
|
|
270
|
+
m: "m";
|
|
271
|
+
a: "a";
|
|
272
|
+
c: "c";
|
|
273
|
+
l: "l";
|
|
274
|
+
v: "v";
|
|
275
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
276
|
+
nyx: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
277
|
+
w: "w";
|
|
278
|
+
u: "u";
|
|
279
|
+
b: "b";
|
|
280
|
+
r: "r";
|
|
281
|
+
g: "g";
|
|
282
|
+
m: "m";
|
|
283
|
+
a: "a";
|
|
284
|
+
c: "c";
|
|
285
|
+
l: "l";
|
|
286
|
+
v: "v";
|
|
287
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
288
|
+
creature: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
289
|
+
w: "w";
|
|
290
|
+
u: "u";
|
|
291
|
+
b: "b";
|
|
292
|
+
r: "r";
|
|
293
|
+
g: "g";
|
|
294
|
+
m: "m";
|
|
295
|
+
a: "a";
|
|
296
|
+
c: "c";
|
|
297
|
+
l: "l";
|
|
298
|
+
v: "v";
|
|
299
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
300
|
+
pt: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
301
|
+
w: "w";
|
|
302
|
+
u: "u";
|
|
303
|
+
b: "b";
|
|
304
|
+
r: "r";
|
|
305
|
+
g: "g";
|
|
306
|
+
m: "m";
|
|
307
|
+
a: "a";
|
|
308
|
+
c: "c";
|
|
309
|
+
l: "l";
|
|
310
|
+
v: "v";
|
|
311
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
312
|
+
crown: z.ZodOptional<z.ZodObject<{
|
|
313
|
+
base: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
314
|
+
w: "w";
|
|
315
|
+
u: "u";
|
|
316
|
+
b: "b";
|
|
317
|
+
r: "r";
|
|
318
|
+
g: "g";
|
|
319
|
+
m: "m";
|
|
320
|
+
a: "a";
|
|
321
|
+
c: "c";
|
|
322
|
+
l: "l";
|
|
323
|
+
v: "v";
|
|
324
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
325
|
+
ub: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
326
|
+
w: "w";
|
|
327
|
+
u: "u";
|
|
328
|
+
b: "b";
|
|
329
|
+
r: "r";
|
|
330
|
+
g: "g";
|
|
331
|
+
m: "m";
|
|
332
|
+
a: "a";
|
|
333
|
+
c: "c";
|
|
334
|
+
l: "l";
|
|
335
|
+
v: "v";
|
|
336
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
337
|
+
nickname: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
338
|
+
w: "w";
|
|
339
|
+
u: "u";
|
|
340
|
+
b: "b";
|
|
341
|
+
r: "r";
|
|
342
|
+
g: "g";
|
|
343
|
+
m: "m";
|
|
344
|
+
a: "a";
|
|
345
|
+
c: "c";
|
|
346
|
+
l: "l";
|
|
347
|
+
v: "v";
|
|
348
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
349
|
+
nicknameUb: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
350
|
+
w: "w";
|
|
351
|
+
u: "u";
|
|
352
|
+
b: "b";
|
|
353
|
+
r: "r";
|
|
354
|
+
g: "g";
|
|
355
|
+
m: "m";
|
|
356
|
+
a: "a";
|
|
357
|
+
c: "c";
|
|
358
|
+
l: "l";
|
|
359
|
+
v: "v";
|
|
360
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
361
|
+
nyxInsert: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
362
|
+
w: "w";
|
|
363
|
+
u: "u";
|
|
364
|
+
b: "b";
|
|
365
|
+
r: "r";
|
|
366
|
+
g: "g";
|
|
367
|
+
m: "m";
|
|
368
|
+
a: "a";
|
|
369
|
+
c: "c";
|
|
370
|
+
l: "l";
|
|
371
|
+
v: "v";
|
|
372
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
373
|
+
nyxInsertUb: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
374
|
+
w: "w";
|
|
375
|
+
u: "u";
|
|
376
|
+
b: "b";
|
|
377
|
+
r: "r";
|
|
378
|
+
g: "g";
|
|
379
|
+
m: "m";
|
|
380
|
+
a: "a";
|
|
381
|
+
c: "c";
|
|
382
|
+
l: "l";
|
|
383
|
+
v: "v";
|
|
384
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
385
|
+
}, z.core.$strip>>;
|
|
386
|
+
nickname: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
387
|
+
w: "w";
|
|
388
|
+
u: "u";
|
|
389
|
+
b: "b";
|
|
390
|
+
r: "r";
|
|
391
|
+
g: "g";
|
|
392
|
+
m: "m";
|
|
393
|
+
a: "a";
|
|
394
|
+
c: "c";
|
|
395
|
+
l: "l";
|
|
396
|
+
v: "v";
|
|
397
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
398
|
+
tokenTitle: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
399
|
+
w: "w";
|
|
400
|
+
u: "u";
|
|
401
|
+
b: "b";
|
|
402
|
+
r: "r";
|
|
403
|
+
g: "g";
|
|
404
|
+
m: "m";
|
|
405
|
+
a: "a";
|
|
406
|
+
c: "c";
|
|
407
|
+
l: "l";
|
|
408
|
+
v: "v";
|
|
409
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
410
|
+
black: z.ZodOptional<z.ZodString>;
|
|
411
|
+
planeswalker: z.ZodOptional<z.ZodObject<{
|
|
412
|
+
plus: z.ZodString;
|
|
413
|
+
minus: z.ZodString;
|
|
414
|
+
zero: z.ZodString;
|
|
415
|
+
separator: z.ZodString;
|
|
416
|
+
startingLoyalty: z.ZodString;
|
|
417
|
+
masks: z.ZodOptional<z.ZodObject<{
|
|
418
|
+
regular: z.ZodOptional<z.ZodString>;
|
|
419
|
+
tall: z.ZodOptional<z.ZodString>;
|
|
420
|
+
}, z.core.$strip>>;
|
|
421
|
+
colorlessNicknameMasks: z.ZodOptional<z.ZodObject<{
|
|
422
|
+
regular: z.ZodOptional<z.ZodString>;
|
|
423
|
+
tall: z.ZodOptional<z.ZodString>;
|
|
424
|
+
}, z.core.$strip>>;
|
|
425
|
+
}, z.core.$strip>>;
|
|
426
|
+
saga: z.ZodOptional<z.ZodObject<{
|
|
427
|
+
badge: z.ZodString;
|
|
428
|
+
divider: z.ZodString;
|
|
429
|
+
banner: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
430
|
+
w: "w";
|
|
431
|
+
u: "u";
|
|
432
|
+
b: "b";
|
|
433
|
+
r: "r";
|
|
434
|
+
g: "g";
|
|
435
|
+
m: "m";
|
|
436
|
+
a: "a";
|
|
437
|
+
c: "c";
|
|
438
|
+
l: "l";
|
|
439
|
+
v: "v";
|
|
440
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
441
|
+
bannerTransform: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
442
|
+
w: "w";
|
|
443
|
+
u: "u";
|
|
444
|
+
b: "b";
|
|
445
|
+
r: "r";
|
|
446
|
+
g: "g";
|
|
447
|
+
m: "m";
|
|
448
|
+
a: "a";
|
|
449
|
+
c: "c";
|
|
450
|
+
l: "l";
|
|
451
|
+
v: "v";
|
|
452
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
453
|
+
bannerMasks: z.ZodOptional<z.ZodObject<{
|
|
454
|
+
right: z.ZodString;
|
|
455
|
+
stripe: z.ZodString;
|
|
456
|
+
}, z.core.$strip>>;
|
|
457
|
+
bannerTransformMasks: z.ZodOptional<z.ZodObject<{
|
|
458
|
+
right: z.ZodString;
|
|
459
|
+
stripe: z.ZodString;
|
|
460
|
+
}, z.core.$strip>>;
|
|
461
|
+
bannerReadAheadMasks: z.ZodOptional<z.ZodObject<{
|
|
462
|
+
right: z.ZodString;
|
|
463
|
+
stripe: z.ZodString;
|
|
464
|
+
}, z.core.$strip>>;
|
|
465
|
+
}, z.core.$strip>>;
|
|
466
|
+
extendedOverlay: z.ZodOptional<z.ZodString>;
|
|
467
|
+
dfcIcon: z.ZodOptional<z.ZodString>;
|
|
468
|
+
dfcIconSet: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
469
|
+
convertdfc: "convertdfc";
|
|
470
|
+
sunmoondfc: "sunmoondfc";
|
|
471
|
+
compasslanddfc: "compasslanddfc";
|
|
472
|
+
originpwdfc: "originpwdfc";
|
|
473
|
+
mooneldrazidfc: "mooneldrazidfc";
|
|
474
|
+
waxingandwaningmoondfc: "waxingandwaningmoondfc";
|
|
475
|
+
fandfc: "fandfc";
|
|
476
|
+
upsidedowndfc: "upsidedowndfc";
|
|
477
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
478
|
+
dfcIconColorSet: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
479
|
+
w: "w";
|
|
480
|
+
u: "u";
|
|
481
|
+
b: "b";
|
|
482
|
+
r: "r";
|
|
483
|
+
g: "g";
|
|
484
|
+
m: "m";
|
|
485
|
+
a: "a";
|
|
486
|
+
c: "c";
|
|
487
|
+
l: "l";
|
|
488
|
+
v: "v";
|
|
489
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
490
|
+
flipside: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
491
|
+
w: "w";
|
|
492
|
+
u: "u";
|
|
493
|
+
b: "b";
|
|
494
|
+
r: "r";
|
|
495
|
+
g: "g";
|
|
496
|
+
m: "m";
|
|
497
|
+
a: "a";
|
|
498
|
+
c: "c";
|
|
499
|
+
l: "l";
|
|
500
|
+
v: "v";
|
|
501
|
+
}> & z.core.$partial, z.ZodString>>;
|
|
502
|
+
lessonIcon: z.ZodOptional<z.ZodString>;
|
|
503
|
+
}, z.core.$strip>;
|
|
504
|
+
export type FrameAssets = z.infer<typeof FrameAssetsSchema>;
|
|
505
|
+
/**
|
|
506
|
+
* Section masks the renderer actually reads. `rightHalf` overrides the global
|
|
507
|
+
* default (`globalMasks.rightHalf`) when a layout ships its own. The legacy
|
|
508
|
+
* `frame`/`border` mask keys are intentionally absent — nothing reads them.
|
|
509
|
+
*/
|
|
510
|
+
export declare const LayoutMasksSchema: z.ZodObject<{
|
|
511
|
+
pinlines: z.ZodOptional<z.ZodString>;
|
|
512
|
+
titleAndType: z.ZodOptional<z.ZodString>;
|
|
513
|
+
rules: z.ZodOptional<z.ZodString>;
|
|
514
|
+
noBorder: z.ZodOptional<z.ZodString>;
|
|
515
|
+
legendary: z.ZodOptional<z.ZodString>;
|
|
516
|
+
legendaryTransform: z.ZodOptional<z.ZodString>;
|
|
517
|
+
noBorderTransform: z.ZodOptional<z.ZodString>;
|
|
518
|
+
rightHalf: z.ZodOptional<z.ZodString>;
|
|
519
|
+
title: z.ZodOptional<z.ZodString>;
|
|
520
|
+
type: z.ZodOptional<z.ZodString>;
|
|
521
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
522
|
+
extended: z.ZodOptional<z.ZodString>;
|
|
523
|
+
topHalf: z.ZodOptional<z.ZodString>;
|
|
524
|
+
bottomHalf: z.ZodOptional<z.ZodString>;
|
|
525
|
+
}, z.core.$strip>;
|
|
526
|
+
export type LayoutMasks = z.infer<typeof LayoutMasksSchema>;
|
|
527
|
+
/** Mask names an overlay may reference. `rightHalf` falls back to globalMasks. */
|
|
528
|
+
export type OverlayMaskName = "pinlines" | "titleAndType" | "rules" | "rightHalf" | "title" | "type";
|
|
529
|
+
/**
|
|
530
|
+
* A structured reference to one frame image. "c2" is valid only in the base
|
|
531
|
+
* family; land/nyx/tall families use plain frame colors.
|
|
532
|
+
*/
|
|
533
|
+
export type FrameRef = {
|
|
534
|
+
family: "base";
|
|
535
|
+
color: FrameColor | "c2";
|
|
536
|
+
} | {
|
|
537
|
+
family: "land" | "nyx" | "tall" | "creature";
|
|
538
|
+
color: FrameColor;
|
|
539
|
+
};
|