# Toast API reference

Every export of @kitr/toast, with its signature.

Every export of `@kitr/toast`, `@kitr/toast/provider`, read from the published type definitions. The [guide](/packages/toast/guide) shows them in use.

## @kitr/toast

### setToastImplementation

```ts
function setToastImplementation(fn: ToastFn | null): void;
```

Replace what `toast` calls: a function with `success`, `error`, `info`, `warning` and `promise` methods.
The toast provider sets sonner's `toast` when the app boots; `null` goes back to the console fallback.

### toastError

```ts
function toastError(error: unknown, fallbackMessage?: string): void;
```

Show a KitrError (or anything) as an error toast with its message.

### defineConfig

```ts
const defineConfig: <const C extends ToastConfig>(config: C) => C;
```

Type-check `config/toast.ts`: returns the object unchanged, with autocomplete for every `ToastConfig` option.

### toast

```ts
const toast: ToastFn;
```

Show a toast: `toast('Saved')`, `toast.success()`, `.error()`, `.info()`, `.warning()` and `.promise()`.
Goes to sonner once the toast provider has booted, and to the console before that or without it.

### ToastConfig

```ts
interface ToastConfig {
  /** Where toasts appear. Default `'bottom-right'`. */
  position?: 'top-left' | 'top-right' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center';
  /** Coloured success, error, info and warning toasts. Default `true`. */
  richColors?: boolean;
  /** How long a toast stays, in milliseconds. Default `4000`. */
  duration?: number;
  /** Show a close button on every toast. Default `false`. */
  closeButton?: boolean;
}
```

The options of `config/toast.ts`: where toasts appear and how they look.

### ToastFn

```ts
/** What `toast` calls: a function with `success`, `error`, `info`, `warning` and `promise` methods. */
type ToastFn = ((message: string, options?: Record<string, unknown>) => unknown) & {
  success: (message: string, options?: Record<string, unknown>) => unknown;
  error: (message: string, options?: Record<string, unknown>) => unknown;
  info: (message: string, options?: Record<string, unknown>) => unknown;
  warning: (message: string, options?: Record<string, unknown>) => unknown;
  promise: <T>(promise: Promise<T>, messages: {
    loading: string;
    success: string;
    error: string;
  }) => Promise<T>;
};
```

What `toast` calls: a function with `success`, `error`, `info`, `warning` and `promise` methods.

## @kitr/toast/provider

### toastProvider

```ts
const toastProvider: import("@kitr/core").KitrProvider;
```

Sends `toast` to sonner and mounts its toaster with `config/toast.ts`.
Listed in kitrrc.ts as `() => import('@kitr/toast/provider')`.

<!-- GENERATED by scripts/api-docs.mjs from the type definitions. Do not edit. -->
