kel-ui-components
Version:
A modern, accessible UI component library built with React, TypeScript, and Tailwind CSS
51 lines • 1.46 kB
TypeScript
import React from "react";
type ToastProps = {
open?: boolean;
onOpenChange?: (open: boolean) => void;
duration?: number;
type?: "foreground" | "background";
};
type ToastActionElement = React.ReactElement<any, string | React.JSXElementConstructor<any>>;
type ToasterToast = ToastProps & {
id: string;
title?: React.ReactNode;
description?: React.ReactNode;
action?: ToastActionElement;
};
declare const actionTypes: {
readonly ADD_TOAST: "ADD_TOAST";
readonly UPDATE_TOAST: "UPDATE_TOAST";
readonly DISMISS_TOAST: "DISMISS_TOAST";
readonly REMOVE_TOAST: "REMOVE_TOAST";
};
type ActionType = typeof actionTypes;
type Action = {
type: ActionType["ADD_TOAST"];
toast: ToasterToast;
} | {
type: ActionType["UPDATE_TOAST"];
toast: Partial<ToasterToast>;
} | {
type: ActionType["DISMISS_TOAST"];
toastId?: ToasterToast["id"];
} | {
type: ActionType["REMOVE_TOAST"];
toastId?: ToasterToast["id"];
};
interface State {
toasts: ToasterToast[];
}
export declare const reducer: (state: State, action: Action) => State;
type Toast = Omit<ToasterToast, "id">;
declare function toast({ ...props }: Toast): {
id: string;
dismiss: () => void;
update: (props: ToasterToast) => void;
};
declare function useToast(): {
toast: typeof toast;
dismiss: (toastId?: string) => void;
toasts: ToasterToast[];
};
export { useToast, toast };
//# sourceMappingURL=use-toast.d.ts.map