@metamask/snaps-sdk
Version:
A library containing the core functionality for building MetaMask Snaps
406 lines • 11.5 kB
text/typescript
import type { Infer, Struct } from "@metamask/superstruct";
import { NodeType } from "../nodes.cjs";
/**
* @internal
*/
export declare const ParentStruct: Struct<{
type: string;
children: ({
value: string;
type: NodeType.Copyable;
sensitive?: boolean | undefined;
} | {
type: NodeType.Divider;
} | {
value: string;
type: NodeType.Heading;
} | {
value: string;
type: NodeType.Image;
} | Panel | {
type: NodeType.Spinner;
} | {
value: string;
type: NodeType.Text;
markdown?: boolean | undefined;
} | {
value: `0x${string}`;
type: NodeType.Address;
} | {
value: {
value: string;
type: NodeType.Image;
} | {
value: string;
type: NodeType.Text;
markdown?: boolean | undefined;
} | {
value: `0x${string}`;
type: NodeType.Address;
};
type: NodeType.Row;
label: string;
variant?: "default" | "critical" | "warning" | undefined;
} | {
name: string;
type: NodeType.Input;
value?: string | undefined;
label?: string | undefined;
inputType?: "number" | "text" | "password" | undefined;
placeholder?: string | undefined;
error?: string | undefined;
} | {
value: string;
type: NodeType.Button;
name?: string | undefined;
variant?: "primary" | "secondary" | undefined;
buttonType?: "button" | "submit" | undefined;
} | {
name: string;
type: NodeType.Form;
children: ({
name: string;
type: NodeType.Input;
value?: string | undefined;
label?: string | undefined;
inputType?: "number" | "text" | "password" | undefined;
placeholder?: string | undefined;
error?: string | undefined;
} | {
value: string;
type: NodeType.Button;
name?: string | undefined;
variant?: "primary" | "secondary" | undefined;
buttonType?: "button" | "submit" | undefined;
})[];
})[];
}, {
children: Struct<({
value: string;
type: NodeType.Copyable;
sensitive?: boolean | undefined;
} | {
type: NodeType.Divider;
} | {
value: string;
type: NodeType.Heading;
} | {
value: string;
type: NodeType.Image;
} | Panel | {
type: NodeType.Spinner;
} | {
value: string;
type: NodeType.Text;
markdown?: boolean | undefined;
} | {
value: `0x${string}`;
type: NodeType.Address;
} | {
value: {
value: string;
type: NodeType.Image;
} | {
value: string;
type: NodeType.Text;
markdown?: boolean | undefined;
} | {
value: `0x${string}`;
type: NodeType.Address;
};
type: NodeType.Row;
label: string;
variant?: "default" | "critical" | "warning" | undefined;
} | {
name: string;
type: NodeType.Input;
value?: string | undefined;
label?: string | undefined;
inputType?: "number" | "text" | "password" | undefined;
placeholder?: string | undefined;
error?: string | undefined;
} | {
value: string;
type: NodeType.Button;
name?: string | undefined;
variant?: "primary" | "secondary" | undefined;
buttonType?: "button" | "submit" | undefined;
} | {
name: string;
type: NodeType.Form;
children: ({
name: string;
type: NodeType.Input;
value?: string | undefined;
label?: string | undefined;
inputType?: "number" | "text" | "password" | undefined;
placeholder?: string | undefined;
error?: string | undefined;
} | {
value: string;
type: NodeType.Button;
name?: string | undefined;
variant?: "primary" | "secondary" | undefined;
buttonType?: "button" | "submit" | undefined;
})[];
})[], Struct<{
value: string;
type: NodeType.Copyable;
sensitive?: boolean | undefined;
} | {
type: NodeType.Divider;
} | {
value: string;
type: NodeType.Heading;
} | {
value: string;
type: NodeType.Image;
} | Panel | {
type: NodeType.Spinner;
} | {
value: string;
type: NodeType.Text;
markdown?: boolean | undefined;
} | {
value: `0x${string}`;
type: NodeType.Address;
} | {
value: {
value: string;
type: NodeType.Image;
} | {
value: string;
type: NodeType.Text;
markdown?: boolean | undefined;
} | {
value: `0x${string}`;
type: NodeType.Address;
};
type: NodeType.Row;
label: string;
variant?: "default" | "critical" | "warning" | undefined;
} | {
name: string;
type: NodeType.Input;
value?: string | undefined;
label?: string | undefined;
inputType?: "number" | "text" | "password" | undefined;
placeholder?: string | undefined;
error?: string | undefined;
} | {
value: string;
type: NodeType.Button;
name?: string | undefined;
variant?: "primary" | "secondary" | undefined;
buttonType?: "button" | "submit" | undefined;
} | {
name: string;
type: NodeType.Form;
children: ({
name: string;
type: NodeType.Input;
value?: string | undefined;
label?: string | undefined;
inputType?: "number" | "text" | "password" | undefined;
placeholder?: string | undefined;
error?: string | undefined;
} | {
value: string;
type: NodeType.Button;
name?: string | undefined;
variant?: "primary" | "secondary" | undefined;
buttonType?: "button" | "submit" | undefined;
})[];
}, null>>;
type: Struct<string, null>;
}>;
/**
* A node which supports child nodes. This is used for nodes that render their
* children, such as {@link Panel}.
*
* @property type - The type of the node.
* @property children - The children of the node
* @internal
*/
export type Parent = Infer<typeof ParentStruct>;
/**
* @internal
*/
export declare const PanelStruct: Struct<Panel>;
/**
* A panel node, which renders its children.
*
* @property type - The type of the node, must be the string 'text'.
* @property value - The text content of the node, either as plain text, or as a
* markdown string.
*/
export type Panel = {
type: NodeType.Panel;
children: Component[];
};
/**
* Create a {@link Panel} node.
*
* @param args - The node arguments. This can be either an array of children, or
* an object with a `children` property.
* @param args.children - The child nodes of the panel. This can be any valid
* {@link Component}.
* @returns The panel node as object.
* @deprecated Snaps component functions are deprecated, in favor of the new JSX
* components. This function will be removed in a future release.
* @example
* const node = panel({
* children: [
* heading({ text: 'Hello, world!' }),
* text({ text: 'This is a panel.' }),
* ],
* });
*
* const node = panel([
* heading('Hello, world!'),
* text('This is a panel.'),
* ]);
*/
export declare const panel: (...args: [Omit<Panel, "type">] | ({
value: string;
type: NodeType.Copyable;
sensitive?: boolean | undefined;
} | {
type: NodeType.Divider;
} | {
value: string;
type: NodeType.Heading;
} | {
value: string;
type: NodeType.Image;
} | Panel | {
type: NodeType.Spinner;
} | {
value: string;
type: NodeType.Text;
markdown?: boolean | undefined;
} | {
value: `0x${string}`;
type: NodeType.Address;
} | {
value: {
value: string;
type: NodeType.Image;
} | {
value: string;
type: NodeType.Text;
markdown?: boolean | undefined;
} | {
value: `0x${string}`;
type: NodeType.Address;
};
type: NodeType.Row;
label: string;
variant?: "default" | "critical" | "warning" | undefined;
} | {
name: string;
type: NodeType.Input;
value?: string | undefined;
label?: string | undefined;
inputType?: "number" | "text" | "password" | undefined;
placeholder?: string | undefined;
error?: string | undefined;
} | {
value: string;
type: NodeType.Button;
name?: string | undefined;
variant?: "primary" | "secondary" | undefined;
buttonType?: "button" | "submit" | undefined;
} | {
name: string;
type: NodeType.Form;
children: ({
name: string;
type: NodeType.Input;
value?: string | undefined;
label?: string | undefined;
inputType?: "number" | "text" | "password" | undefined;
placeholder?: string | undefined;
error?: string | undefined;
} | {
value: string;
type: NodeType.Button;
name?: string | undefined;
variant?: "primary" | "secondary" | undefined;
buttonType?: "button" | "submit" | undefined;
})[];
})[][]) => Panel;
export declare const ComponentStruct: Struct<{
value: string;
type: NodeType.Copyable;
sensitive?: boolean | undefined;
} | {
type: NodeType.Divider;
} | {
value: string;
type: NodeType.Heading;
} | {
value: string;
type: NodeType.Image;
} | Panel | {
type: NodeType.Spinner;
} | {
value: string;
type: NodeType.Text;
markdown?: boolean | undefined;
} | {
value: `0x${string}`;
type: NodeType.Address;
} | {
value: {
value: string;
type: NodeType.Image;
} | {
value: string;
type: NodeType.Text;
markdown?: boolean | undefined;
} | {
value: `0x${string}`;
type: NodeType.Address;
};
type: NodeType.Row;
label: string;
variant?: "default" | "critical" | "warning" | undefined;
} | {
name: string;
type: NodeType.Input;
value?: string | undefined;
label?: string | undefined;
inputType?: "number" | "text" | "password" | undefined;
placeholder?: string | undefined;
error?: string | undefined;
} | {
value: string;
type: NodeType.Button;
name?: string | undefined;
variant?: "primary" | "secondary" | undefined;
buttonType?: "button" | "submit" | undefined;
} | {
name: string;
type: NodeType.Form;
children: ({
name: string;
type: NodeType.Input;
value?: string | undefined;
label?: string | undefined;
inputType?: "number" | "text" | "password" | undefined;
placeholder?: string | undefined;
error?: string | undefined;
} | {
value: string;
type: NodeType.Button;
name?: string | undefined;
variant?: "primary" | "secondary" | undefined;
buttonType?: "button" | "submit" | undefined;
})[];
}, null>;
/**
* All supported component types.
*/
export type Component = Infer<typeof ComponentStruct>;
//# sourceMappingURL=panel.d.cts.map