@metamask/snaps-sdk 4.4.2 → 6.0.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/CHANGELOG.md +30 -1
- package/dist/index.js +276 -243
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +138 -104
- package/dist/index.mjs.map +1 -1
- package/dist/jsx/index.js +183 -115
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +168 -101
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/jsx-dev-runtime.js +132 -79
- package/dist/jsx/jsx-dev-runtime.js.map +1 -1
- package/dist/jsx/jsx-dev-runtime.mjs +117 -65
- package/dist/jsx/jsx-dev-runtime.mjs.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/internals/jsx.d.ts +1 -1
- package/dist/types/internals/svg.d.ts +4 -11
- package/dist/types/jsx/component.d.ts +16 -9
- package/dist/types/jsx/components/Box.d.ts +4 -4
- package/dist/types/jsx/components/Link.d.ts +2 -2
- package/dist/types/jsx/components/Row.d.ts +5 -2
- package/dist/types/jsx/components/Text.d.ts +7 -2
- package/dist/types/jsx/components/Tooltip.d.ts +38 -0
- package/dist/types/jsx/components/form/Checkbox.d.ts +35 -0
- package/dist/types/jsx/components/form/Dropdown.d.ts +5 -7
- package/dist/types/jsx/components/form/Field.d.ts +7 -1
- package/dist/types/jsx/components/form/FileInput.d.ts +47 -0
- package/dist/types/jsx/components/form/Form.d.ts +4 -7
- package/dist/types/jsx/components/form/Input.d.ts +2 -4
- package/dist/types/jsx/components/form/index.d.ts +5 -1
- package/dist/types/jsx/components/formatting/Bold.d.ts +2 -2
- package/dist/types/jsx/components/formatting/Italic.d.ts +2 -2
- package/dist/types/jsx/components/index.d.ts +3 -1
- package/dist/types/jsx/validation.d.ts +34 -39
- package/dist/types/types/handlers/name-lookup.d.ts +1 -0
- package/dist/types/types/handlers/user-input.d.ts +126 -11
- package/dist/types/types/interface.d.ts +29 -21
- package/dist/types/ui/components/image.d.ts +0 -7
- package/package.json +1 -2
package/dist/jsx/index.mjs
CHANGED
|
@@ -19,77 +19,89 @@ function createSnapComponent(type) {
|
|
|
19
19
|
var TYPE = "Button";
|
|
20
20
|
var Button = createSnapComponent(TYPE);
|
|
21
21
|
|
|
22
|
+
// src/jsx/components/form/Checkbox.ts
|
|
23
|
+
var TYPE2 = "Checkbox";
|
|
24
|
+
var Checkbox = createSnapComponent(TYPE2);
|
|
25
|
+
|
|
22
26
|
// src/jsx/components/form/Dropdown.ts
|
|
23
|
-
var
|
|
24
|
-
var Dropdown = createSnapComponent(
|
|
27
|
+
var TYPE3 = "Dropdown";
|
|
28
|
+
var Dropdown = createSnapComponent(TYPE3);
|
|
25
29
|
|
|
26
30
|
// src/jsx/components/form/Option.ts
|
|
27
|
-
var
|
|
28
|
-
var Option = createSnapComponent(
|
|
31
|
+
var TYPE4 = "Option";
|
|
32
|
+
var Option = createSnapComponent(TYPE4);
|
|
29
33
|
|
|
30
34
|
// src/jsx/components/form/Field.ts
|
|
31
|
-
var
|
|
32
|
-
var Field = createSnapComponent(
|
|
35
|
+
var TYPE5 = "Field";
|
|
36
|
+
var Field = createSnapComponent(TYPE5);
|
|
37
|
+
|
|
38
|
+
// src/jsx/components/form/FileInput.ts
|
|
39
|
+
var TYPE6 = "FileInput";
|
|
40
|
+
var FileInput = createSnapComponent(TYPE6);
|
|
33
41
|
|
|
34
42
|
// src/jsx/components/form/Form.ts
|
|
35
|
-
var
|
|
36
|
-
var Form = createSnapComponent(
|
|
43
|
+
var TYPE7 = "Form";
|
|
44
|
+
var Form = createSnapComponent(TYPE7);
|
|
37
45
|
|
|
38
46
|
// src/jsx/components/form/Input.ts
|
|
39
|
-
var
|
|
40
|
-
var Input = createSnapComponent(
|
|
47
|
+
var TYPE8 = "Input";
|
|
48
|
+
var Input = createSnapComponent(TYPE8);
|
|
41
49
|
|
|
42
50
|
// src/jsx/components/formatting/Bold.ts
|
|
43
|
-
var
|
|
44
|
-
var Bold = createSnapComponent(
|
|
51
|
+
var TYPE9 = "Bold";
|
|
52
|
+
var Bold = createSnapComponent(TYPE9);
|
|
45
53
|
|
|
46
54
|
// src/jsx/components/formatting/Italic.ts
|
|
47
|
-
var
|
|
48
|
-
var Italic = createSnapComponent(
|
|
55
|
+
var TYPE10 = "Italic";
|
|
56
|
+
var Italic = createSnapComponent(TYPE10);
|
|
49
57
|
|
|
50
58
|
// src/jsx/components/Address.ts
|
|
51
|
-
var
|
|
52
|
-
var Address = createSnapComponent(
|
|
59
|
+
var TYPE11 = "Address";
|
|
60
|
+
var Address = createSnapComponent(TYPE11);
|
|
53
61
|
|
|
54
62
|
// src/jsx/components/Box.ts
|
|
55
|
-
var
|
|
56
|
-
var Box = createSnapComponent(
|
|
63
|
+
var TYPE12 = "Box";
|
|
64
|
+
var Box = createSnapComponent(TYPE12);
|
|
57
65
|
|
|
58
66
|
// src/jsx/components/Copyable.ts
|
|
59
|
-
var
|
|
60
|
-
var Copyable = createSnapComponent(
|
|
67
|
+
var TYPE13 = "Copyable";
|
|
68
|
+
var Copyable = createSnapComponent(TYPE13);
|
|
61
69
|
|
|
62
70
|
// src/jsx/components/Divider.ts
|
|
63
|
-
var
|
|
64
|
-
var Divider = createSnapComponent(
|
|
71
|
+
var TYPE14 = "Divider";
|
|
72
|
+
var Divider = createSnapComponent(TYPE14);
|
|
65
73
|
|
|
66
74
|
// src/jsx/components/Value.ts
|
|
67
|
-
var
|
|
68
|
-
var Value = createSnapComponent(
|
|
75
|
+
var TYPE15 = "Value";
|
|
76
|
+
var Value = createSnapComponent(TYPE15);
|
|
69
77
|
|
|
70
78
|
// src/jsx/components/Heading.ts
|
|
71
|
-
var
|
|
72
|
-
var Heading = createSnapComponent(
|
|
79
|
+
var TYPE16 = "Heading";
|
|
80
|
+
var Heading = createSnapComponent(TYPE16);
|
|
73
81
|
|
|
74
82
|
// src/jsx/components/Image.ts
|
|
75
|
-
var
|
|
76
|
-
var Image = createSnapComponent(
|
|
83
|
+
var TYPE17 = "Image";
|
|
84
|
+
var Image = createSnapComponent(TYPE17);
|
|
77
85
|
|
|
78
86
|
// src/jsx/components/Link.ts
|
|
79
|
-
var
|
|
80
|
-
var Link = createSnapComponent(
|
|
87
|
+
var TYPE18 = "Link";
|
|
88
|
+
var Link = createSnapComponent(TYPE18);
|
|
81
89
|
|
|
82
90
|
// src/jsx/components/Row.ts
|
|
83
|
-
var
|
|
84
|
-
var Row = createSnapComponent(
|
|
91
|
+
var TYPE19 = "Row";
|
|
92
|
+
var Row = createSnapComponent(TYPE19);
|
|
85
93
|
|
|
86
94
|
// src/jsx/components/Spinner.ts
|
|
87
|
-
var
|
|
88
|
-
var Spinner = createSnapComponent(
|
|
95
|
+
var TYPE20 = "Spinner";
|
|
96
|
+
var Spinner = createSnapComponent(TYPE20);
|
|
89
97
|
|
|
90
98
|
// src/jsx/components/Text.ts
|
|
91
|
-
var
|
|
92
|
-
var Text = createSnapComponent(
|
|
99
|
+
var TYPE21 = "Text";
|
|
100
|
+
var Text = createSnapComponent(TYPE21);
|
|
101
|
+
|
|
102
|
+
// src/jsx/components/Tooltip.ts
|
|
103
|
+
var TYPE22 = "Tooltip";
|
|
104
|
+
var Tooltip = createSnapComponent(TYPE22);
|
|
93
105
|
|
|
94
106
|
// src/jsx/jsx-runtime.ts
|
|
95
107
|
function jsx(component, props, key) {
|
|
@@ -119,7 +131,6 @@ import {
|
|
|
119
131
|
JsonStruct
|
|
120
132
|
} from "@metamask/utils";
|
|
121
133
|
import {
|
|
122
|
-
nonempty,
|
|
123
134
|
is,
|
|
124
135
|
boolean,
|
|
125
136
|
optional,
|
|
@@ -129,7 +140,7 @@ import {
|
|
|
129
140
|
number,
|
|
130
141
|
object,
|
|
131
142
|
record,
|
|
132
|
-
string,
|
|
143
|
+
string as string2,
|
|
133
144
|
tuple
|
|
134
145
|
} from "superstruct";
|
|
135
146
|
|
|
@@ -162,21 +173,36 @@ function nullUnion(structs) {
|
|
|
162
173
|
return union(structs);
|
|
163
174
|
}
|
|
164
175
|
|
|
176
|
+
// src/internals/svg.ts
|
|
177
|
+
import { refine, string } from "superstruct";
|
|
178
|
+
function svg() {
|
|
179
|
+
return refine(string(), "SVG", (value) => {
|
|
180
|
+
if (!value.includes("<svg")) {
|
|
181
|
+
return "Value is not a valid SVG.";
|
|
182
|
+
}
|
|
183
|
+
return true;
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
|
|
165
187
|
// src/jsx/validation.ts
|
|
166
|
-
var KeyStruct = nullUnion([
|
|
167
|
-
var StringElementStruct =
|
|
168
|
-
|
|
169
|
-
);
|
|
188
|
+
var KeyStruct = nullUnion([string2(), number()]);
|
|
189
|
+
var StringElementStruct = children([
|
|
190
|
+
string2()
|
|
191
|
+
]);
|
|
170
192
|
var ElementStruct = object({
|
|
171
|
-
type:
|
|
172
|
-
props: record(
|
|
193
|
+
type: string2(),
|
|
194
|
+
props: record(string2(), JsonStruct),
|
|
173
195
|
key: nullable(KeyStruct)
|
|
174
196
|
});
|
|
175
|
-
function
|
|
176
|
-
|
|
197
|
+
function nestable(struct) {
|
|
198
|
+
const nestableStruct = nullUnion([
|
|
199
|
+
struct,
|
|
200
|
+
array(lazy(() => nestableStruct))
|
|
201
|
+
]);
|
|
202
|
+
return nestableStruct;
|
|
177
203
|
}
|
|
178
|
-
function
|
|
179
|
-
return nullUnion([
|
|
204
|
+
function children(structs) {
|
|
205
|
+
return nestable(nullable(nullUnion([...structs, boolean()])));
|
|
180
206
|
}
|
|
181
207
|
function element(name, props = {}) {
|
|
182
208
|
return object({
|
|
@@ -187,62 +213,73 @@ function element(name, props = {}) {
|
|
|
187
213
|
}
|
|
188
214
|
var ButtonStruct = element("Button", {
|
|
189
215
|
children: StringElementStruct,
|
|
190
|
-
name: optional(
|
|
216
|
+
name: optional(string2()),
|
|
191
217
|
type: optional(nullUnion([literal("button"), literal("submit")])),
|
|
192
218
|
variant: optional(nullUnion([literal("primary"), literal("destructive")])),
|
|
193
219
|
disabled: optional(boolean())
|
|
194
220
|
});
|
|
221
|
+
var CheckboxStruct = element("Checkbox", {
|
|
222
|
+
name: string2(),
|
|
223
|
+
checked: optional(boolean()),
|
|
224
|
+
label: optional(string2()),
|
|
225
|
+
variant: optional(nullUnion([literal("default"), literal("toggle")]))
|
|
226
|
+
});
|
|
195
227
|
var InputStruct = element("Input", {
|
|
196
|
-
name:
|
|
228
|
+
name: string2(),
|
|
197
229
|
type: optional(
|
|
198
230
|
nullUnion([literal("text"), literal("password"), literal("number")])
|
|
199
231
|
),
|
|
200
|
-
value: optional(
|
|
201
|
-
placeholder: optional(
|
|
232
|
+
value: optional(string2()),
|
|
233
|
+
placeholder: optional(string2())
|
|
202
234
|
});
|
|
203
235
|
var OptionStruct = element("Option", {
|
|
204
|
-
value:
|
|
205
|
-
children:
|
|
236
|
+
value: string2(),
|
|
237
|
+
children: string2()
|
|
206
238
|
});
|
|
207
239
|
var DropdownStruct = element("Dropdown", {
|
|
208
|
-
name:
|
|
209
|
-
value: optional(
|
|
210
|
-
children:
|
|
240
|
+
name: string2(),
|
|
241
|
+
value: optional(string2()),
|
|
242
|
+
children: children([OptionStruct])
|
|
211
243
|
});
|
|
244
|
+
var FileInputStruct = element(
|
|
245
|
+
"FileInput",
|
|
246
|
+
{
|
|
247
|
+
name: string2(),
|
|
248
|
+
accept: nullUnion([optional(array(string2()))]),
|
|
249
|
+
compact: optional(boolean())
|
|
250
|
+
}
|
|
251
|
+
);
|
|
212
252
|
var FieldStruct = element("Field", {
|
|
213
|
-
label: optional(
|
|
214
|
-
error: optional(
|
|
253
|
+
label: optional(string2()),
|
|
254
|
+
error: optional(string2()),
|
|
215
255
|
children: nullUnion([
|
|
216
256
|
tuple([InputStruct, ButtonStruct]),
|
|
257
|
+
DropdownStruct,
|
|
258
|
+
FileInputStruct,
|
|
217
259
|
InputStruct,
|
|
218
|
-
|
|
260
|
+
CheckboxStruct
|
|
219
261
|
])
|
|
220
262
|
});
|
|
221
263
|
var FormStruct = element("Form", {
|
|
222
|
-
children:
|
|
223
|
-
|
|
264
|
+
children: children(
|
|
265
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
266
|
+
[FieldStruct, lazy(() => BoxChildStruct)]
|
|
267
|
+
),
|
|
268
|
+
name: string2()
|
|
224
269
|
});
|
|
225
270
|
var BoldStruct = element("Bold", {
|
|
226
|
-
children:
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
lazy(() => ItalicStruct)
|
|
232
|
-
])
|
|
233
|
-
)
|
|
234
|
-
)
|
|
271
|
+
children: children([
|
|
272
|
+
string2(),
|
|
273
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
274
|
+
lazy(() => ItalicStruct)
|
|
275
|
+
])
|
|
235
276
|
});
|
|
236
277
|
var ItalicStruct = element("Italic", {
|
|
237
|
-
children:
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
lazy(() => BoldStruct)
|
|
243
|
-
])
|
|
244
|
-
)
|
|
245
|
-
)
|
|
278
|
+
children: children([
|
|
279
|
+
string2(),
|
|
280
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
281
|
+
lazy(() => BoldStruct)
|
|
282
|
+
])
|
|
246
283
|
});
|
|
247
284
|
var FormattingStruct = nullUnion([
|
|
248
285
|
BoldStruct,
|
|
@@ -252,9 +289,9 @@ var AddressStruct = element("Address", {
|
|
|
252
289
|
address: HexChecksumAddressStruct
|
|
253
290
|
});
|
|
254
291
|
var BoxStruct = element("Box", {
|
|
255
|
-
children:
|
|
292
|
+
children: children(
|
|
256
293
|
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
257
|
-
|
|
294
|
+
[lazy(() => BoxChildStruct)]
|
|
258
295
|
),
|
|
259
296
|
direction: optional(nullUnion([literal("horizontal"), literal("vertical")])),
|
|
260
297
|
alignment: optional(
|
|
@@ -268,60 +305,85 @@ var BoxStruct = element("Box", {
|
|
|
268
305
|
)
|
|
269
306
|
});
|
|
270
307
|
var CopyableStruct = element("Copyable", {
|
|
271
|
-
value:
|
|
308
|
+
value: string2(),
|
|
272
309
|
sensitive: optional(boolean())
|
|
273
310
|
});
|
|
274
311
|
var DividerStruct = element("Divider");
|
|
275
312
|
var ValueStruct = element("Value", {
|
|
276
|
-
value:
|
|
277
|
-
extra:
|
|
313
|
+
value: string2(),
|
|
314
|
+
extra: string2()
|
|
278
315
|
});
|
|
279
316
|
var HeadingStruct = element("Heading", {
|
|
280
317
|
children: StringElementStruct
|
|
281
318
|
});
|
|
282
319
|
var ImageStruct = element("Image", {
|
|
283
|
-
src:
|
|
284
|
-
alt: optional(
|
|
320
|
+
src: svg(),
|
|
321
|
+
alt: optional(string2())
|
|
285
322
|
});
|
|
286
323
|
var LinkStruct = element("Link", {
|
|
287
|
-
href:
|
|
288
|
-
children:
|
|
324
|
+
href: string2(),
|
|
325
|
+
children: children([FormattingStruct, string2()])
|
|
289
326
|
});
|
|
290
327
|
var TextStruct = element("Text", {
|
|
291
|
-
children:
|
|
292
|
-
|
|
328
|
+
children: children([string2(), BoldStruct, ItalicStruct, LinkStruct]),
|
|
329
|
+
alignment: optional(
|
|
330
|
+
nullUnion([literal("start"), literal("center"), literal("end")])
|
|
293
331
|
)
|
|
294
332
|
});
|
|
333
|
+
var TooltipChildStruct = nullUnion([
|
|
334
|
+
TextStruct,
|
|
335
|
+
BoldStruct,
|
|
336
|
+
ItalicStruct,
|
|
337
|
+
LinkStruct,
|
|
338
|
+
ImageStruct,
|
|
339
|
+
boolean()
|
|
340
|
+
]);
|
|
341
|
+
var TooltipContentStruct = nullUnion([
|
|
342
|
+
TextStruct,
|
|
343
|
+
BoldStruct,
|
|
344
|
+
ItalicStruct,
|
|
345
|
+
LinkStruct,
|
|
346
|
+
string2()
|
|
347
|
+
]);
|
|
348
|
+
var TooltipStruct = element("Tooltip", {
|
|
349
|
+
children: nullable(TooltipChildStruct),
|
|
350
|
+
content: TooltipContentStruct
|
|
351
|
+
});
|
|
295
352
|
var RowStruct = element("Row", {
|
|
296
|
-
label:
|
|
353
|
+
label: string2(),
|
|
297
354
|
children: nullUnion([AddressStruct, ImageStruct, TextStruct, ValueStruct]),
|
|
298
355
|
variant: optional(
|
|
299
|
-
nullUnion([literal("default"), literal("warning"), literal("
|
|
300
|
-
)
|
|
356
|
+
nullUnion([literal("default"), literal("warning"), literal("critical")])
|
|
357
|
+
),
|
|
358
|
+
tooltip: optional(string2())
|
|
301
359
|
});
|
|
302
360
|
var SpinnerStruct = element("Spinner");
|
|
303
361
|
var BoxChildStruct = nullUnion([
|
|
304
|
-
ButtonStruct,
|
|
305
|
-
InputStruct,
|
|
306
|
-
FormStruct,
|
|
307
|
-
BoldStruct,
|
|
308
|
-
ItalicStruct,
|
|
309
362
|
AddressStruct,
|
|
363
|
+
BoldStruct,
|
|
310
364
|
BoxStruct,
|
|
365
|
+
ButtonStruct,
|
|
311
366
|
CopyableStruct,
|
|
312
367
|
DividerStruct,
|
|
368
|
+
DropdownStruct,
|
|
369
|
+
FileInputStruct,
|
|
370
|
+
FormStruct,
|
|
313
371
|
HeadingStruct,
|
|
372
|
+
InputStruct,
|
|
314
373
|
ImageStruct,
|
|
374
|
+
ItalicStruct,
|
|
315
375
|
LinkStruct,
|
|
316
376
|
RowStruct,
|
|
317
377
|
SpinnerStruct,
|
|
318
378
|
TextStruct,
|
|
319
|
-
|
|
379
|
+
TooltipStruct,
|
|
380
|
+
CheckboxStruct
|
|
320
381
|
]);
|
|
321
382
|
var RootJSXElementStruct = BoxChildStruct;
|
|
322
383
|
var JSXElementStruct = nullUnion([
|
|
323
384
|
ButtonStruct,
|
|
324
385
|
InputStruct,
|
|
386
|
+
FileInputStruct,
|
|
325
387
|
FieldStruct,
|
|
326
388
|
FormStruct,
|
|
327
389
|
BoldStruct,
|
|
@@ -338,7 +400,9 @@ var JSXElementStruct = nullUnion([
|
|
|
338
400
|
TextStruct,
|
|
339
401
|
DropdownStruct,
|
|
340
402
|
OptionStruct,
|
|
341
|
-
ValueStruct
|
|
403
|
+
ValueStruct,
|
|
404
|
+
TooltipStruct,
|
|
405
|
+
CheckboxStruct
|
|
342
406
|
]);
|
|
343
407
|
function isJSXElement(value) {
|
|
344
408
|
return is(value, JSXElementStruct);
|
|
@@ -367,10 +431,12 @@ export {
|
|
|
367
431
|
Bold,
|
|
368
432
|
Box,
|
|
369
433
|
Button,
|
|
434
|
+
Checkbox,
|
|
370
435
|
Copyable,
|
|
371
436
|
Divider,
|
|
372
437
|
Dropdown,
|
|
373
438
|
Field,
|
|
439
|
+
FileInput,
|
|
374
440
|
Form,
|
|
375
441
|
Heading,
|
|
376
442
|
Image,
|
|
@@ -383,6 +449,7 @@ export {
|
|
|
383
449
|
Row,
|
|
384
450
|
Spinner,
|
|
385
451
|
Text,
|
|
452
|
+
Tooltip,
|
|
386
453
|
Value,
|
|
387
454
|
assertJSXElement,
|
|
388
455
|
createSnapComponent,
|