@blockstack/ui
Version:
Blockstack UI components built using React and styled-components with styled-system.
49 lines (48 loc) • 1.31 kB
TypeScript
import { ReactNode } from 'react';
import { BoxProps } from '../box';
import { FlexProps } from '../flex';
interface IconProps extends Omit<BoxProps, 'color'> {
color?: {
critical?: BoxProps['color'];
positive?: BoxProps['color'];
};
}
interface ToastStyleProps {
message?: BoxProps;
description?: BoxProps;
toast?: BoxProps;
icon?: IconProps;
close?: BoxProps;
action?: Omit<BoxProps, 'onClick'>;
}
export interface ToastAction extends Omit<BoxProps, 'onClick'> {
label: string;
onClick: () => void;
}
export interface ActionProps extends ToastAction {
removeToast: () => void;
}
declare type Tone = 'positive' | 'critical' | 'none';
export interface ToastType {
id: string;
tone?: Tone;
message: string;
description?: string;
action?: ToastAction;
toastProps?: ToastStyleProps;
}
export interface ToastProps extends ToastType {
onClear: (id: string) => void;
}
export interface ToasterProps extends FlexProps {
toasts: ToastType[];
removeToast: (id: string) => void;
}
export interface ToastState {
toasts: ToastType[];
}
export declare type AddToast = (toast: ToastType) => void;
export interface ToastProviderProps {
children: ReactNode;
}
export {};