@wakastellar/ui 0.1.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/dist/blocks/footer/index.d.ts +19 -0
- package/dist/blocks/headtab/index.d.ts +27 -0
- package/dist/blocks/index.d.ts +5 -0
- package/dist/blocks/language-selector/index.d.ts +6 -0
- package/dist/blocks/layout/index.d.ts +28 -0
- package/dist/blocks/login/index.d.ts +13 -0
- package/dist/components/DataTable/DataTable.d.ts +17 -0
- package/dist/components/DataTable/DataTableAdvanced.d.ts +27 -0
- package/dist/components/DataTable/DataTableColumnResizer.d.ts +8 -0
- package/dist/components/DataTable/DataTableContextMenu.d.ts +47 -0
- package/dist/components/DataTable/DataTableEditCell.d.ts +29 -0
- package/dist/components/DataTable/DataTableFilters.d.ts +14 -0
- package/dist/components/DataTable/DataTableGrouping.d.ts +25 -0
- package/dist/components/DataTable/DataTablePagination.d.ts +8 -0
- package/dist/components/DataTable/DataTableSelection.d.ts +46 -0
- package/dist/components/DataTable/DataTableToolbar.d.ts +14 -0
- package/dist/components/DataTable/examples/EditExample.d.ts +2 -0
- package/dist/components/DataTable/hooks/useDataTable.d.ts +24 -0
- package/dist/components/DataTable/hooks/useDataTableAdvanced.d.ts +38 -0
- package/dist/components/DataTable/hooks/useDataTableEdit.d.ts +22 -0
- package/dist/components/DataTable/hooks/useDataTableExport.d.ts +15 -0
- package/dist/components/DataTable/hooks/useDataTableImport.d.ts +12 -0
- package/dist/components/DataTable/hooks/useDataTableTheme.d.ts +16 -0
- package/dist/components/DataTable/hooks/useDataTableVirtualization.d.ts +19 -0
- package/dist/components/DataTable/hooks/useTableLayout.d.ts +26 -0
- package/dist/components/DataTable/index.d.ts +37 -0
- package/dist/components/DataTable/types.d.ts +461 -0
- package/dist/components/DataTable/utils.d.ts +37 -0
- package/dist/components/accordion/index.d.ts +7 -0
- package/dist/components/alert/index.d.ts +8 -0
- package/dist/components/alert-dialog/index.d.ts +20 -0
- package/dist/components/aspect-ratio/index.d.ts +3 -0
- package/dist/components/avatar/index.d.ts +6 -0
- package/dist/components/badge/index.d.ts +9 -0
- package/dist/components/button/index.d.ts +11 -0
- package/dist/components/calendar/index.d.ts +8 -0
- package/dist/components/card/index.d.ts +8 -0
- package/dist/components/checkbox/index.d.ts +4 -0
- package/dist/components/code/index.d.ts +29 -0
- package/dist/components/collapsible/index.d.ts +5 -0
- package/dist/components/command/index.d.ts +51 -0
- package/dist/components/context-menu/index.d.ts +27 -0
- package/dist/components/dialog/index.d.ts +19 -0
- package/dist/components/dropdown-menu/index.d.ts +27 -0
- package/dist/components/form/index.d.ts +23 -0
- package/dist/components/hover-card/index.d.ts +6 -0
- package/dist/components/index.d.ts +52 -0
- package/dist/components/input/index.d.ts +5 -0
- package/dist/components/input-otp/index.d.ts +51 -0
- package/dist/components/label/index.d.ts +5 -0
- package/dist/components/language-selector/index.d.ts +40 -0
- package/dist/components/menubar/index.d.ts +28 -0
- package/dist/components/navigation-menu/index.d.ts +12 -0
- package/dist/components/popover/index.d.ts +6 -0
- package/dist/components/progress/index.d.ts +4 -0
- package/dist/components/radio-group/index.d.ts +5 -0
- package/dist/components/scroll-area/index.d.ts +5 -0
- package/dist/components/select/index.d.ts +13 -0
- package/dist/components/separator/index.d.ts +4 -0
- package/dist/components/sheet/index.d.ts +27 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/slider/index.d.ts +4 -0
- package/dist/components/switch/index.d.ts +4 -0
- package/dist/components/table/index.d.ts +10 -0
- package/dist/components/tabs/index.d.ts +7 -0
- package/dist/components/textarea/index.d.ts +5 -0
- package/dist/components/theme-selector/index.d.ts +8 -0
- package/dist/components/toast/index.d.ts +15 -0
- package/dist/components/toaster/index.d.ts +1 -0
- package/dist/components/toggle/index.d.ts +12 -0
- package/dist/components/tooltip/index.d.ts +7 -0
- package/dist/components/typography/index.d.ts +85 -0
- package/dist/components/waka-admincrumb/index.d.ts +41 -0
- package/dist/components/waka-carousel/index.d.ts +105 -0
- package/dist/components/waka-datetime-picker/index.d.ts +135 -0
- package/dist/components/waka-datetime-picker.form-integration/index.d.ts +69 -0
- package/dist/components/waka-notifications/index.d.ts +40 -0
- package/dist/components/waka-spinner/index.d.ts +46 -0
- package/dist/components/waka-theme-creator/index.d.ts +59 -0
- package/dist/components/waka-theme-manager/index.d.ts +62 -0
- package/dist/context/admincrumb-context.d.ts +34 -0
- package/dist/context/index.d.ts +8 -0
- package/dist/context/language-context.d.ts +57 -0
- package/dist/context/theme-context.d.ts +39 -0
- package/dist/context/theme-provider.d.ts +74 -0
- package/dist/context/waka-provider.d.ts +50 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/use-toast.d.ts +44 -0
- package/dist/hooks/use-translation.d.ts +15 -0
- package/dist/hooks/useToast.d.ts +44 -0
- package/dist/index.cjs.js +70 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.es.js +16379 -0
- package/dist/lib/i18n.d.ts +4 -0
- package/dist/types/provider.d.ts +108 -0
- package/dist/ui.css +1 -0
- package/dist/utils/cn.d.ts +1 -0
- package/dist/utils/datetime-helpers.d.ts +137 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/theme-loader.d.ts +101 -0
- package/dist/utils/tweak.d.ts +18 -0
- package/package.json +118 -0
- package/src/styles/carousel.css +687 -0
- package/src/styles/code-highlight.css +232 -0
- package/src/styles/datepicker.css +420 -0
- package/src/styles/globals.css +84 -0
- package/src/styles/prism.css +261 -0
- package/src/styles/themes/forest.css +55 -0
- package/src/styles/themes/index.css +7 -0
- package/src/styles/themes/monochrome.css +55 -0
- package/src/styles/themes/perpetuity.css +55 -0
- package/src/styles/themes/sunset.css +55 -0
- package/src/styles/themes/twilight.css +55 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { ThemeProvider, useTheme } from './theme-provider';
|
|
2
|
+
export type { ThemeContextValue, ThemeProviderProps, ThemeConfig, ThemeS3Config } from './theme-provider';
|
|
3
|
+
export { ThemeProvider as LegacyThemeProvider, useTheme as useLegacyTheme } from './theme-context';
|
|
4
|
+
export type { ThemeContextValue as LegacyThemeContextValue, ThemeProviderProps as LegacyThemeProviderProps } from './theme-context';
|
|
5
|
+
export { LanguageProvider, useLanguage } from './language-context';
|
|
6
|
+
export type { LanguageConfig, S3Config, LanguageProviderProps, LanguageContextValue } from './language-context';
|
|
7
|
+
export { WakaProvider, useWaka } from './waka-provider';
|
|
8
|
+
export type { WakaProviderConfig, WakaProviderProps } from './waka-provider';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface S3Config {
|
|
3
|
+
/** URL de base du bucket S3 */
|
|
4
|
+
baseUrl: string;
|
|
5
|
+
/** Préfixe des fichiers (ex: "translations/") */
|
|
6
|
+
prefix?: string;
|
|
7
|
+
/** Extension des fichiers (défaut: "json") */
|
|
8
|
+
extension?: string;
|
|
9
|
+
/** Headers personnalisés pour les requêtes */
|
|
10
|
+
headers?: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export interface LanguageConfig {
|
|
13
|
+
code: string;
|
|
14
|
+
label: string;
|
|
15
|
+
flagEmoji?: string;
|
|
16
|
+
flag?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface LanguageContextValue {
|
|
19
|
+
/** Langue courante */
|
|
20
|
+
currentLanguage: string;
|
|
21
|
+
/** Liste des langues disponibles */
|
|
22
|
+
languages: LanguageConfig[];
|
|
23
|
+
/** Changer de langue */
|
|
24
|
+
changeLanguage: (code: string) => Promise<void>;
|
|
25
|
+
/** État de chargement */
|
|
26
|
+
isLoading: boolean;
|
|
27
|
+
/** Traductions chargées */
|
|
28
|
+
loadedLanguages: Set<string>;
|
|
29
|
+
}
|
|
30
|
+
export interface LanguageProviderProps {
|
|
31
|
+
children: React.ReactNode;
|
|
32
|
+
/** Langues disponibles */
|
|
33
|
+
languages: LanguageConfig[];
|
|
34
|
+
/** Langue par défaut */
|
|
35
|
+
defaultLanguage?: string;
|
|
36
|
+
/** Configuration S3 (optionnel - si non fourni, utilise les traductions locales) */
|
|
37
|
+
s3Config?: S3Config;
|
|
38
|
+
/** Callback après changement de langue */
|
|
39
|
+
onLanguageChange?: (code: string) => void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* LanguageProvider
|
|
43
|
+
*
|
|
44
|
+
* Provider pour gérer les langues et charger les traductions depuis S3.
|
|
45
|
+
*
|
|
46
|
+
* Features:
|
|
47
|
+
* - Chargement dynamique des traductions depuis S3
|
|
48
|
+
* - Cache des traductions déjà chargées
|
|
49
|
+
* - Intégration avec i18next
|
|
50
|
+
* - Persistance dans localStorage
|
|
51
|
+
* - Support des traductions locales si pas de S3
|
|
52
|
+
*/
|
|
53
|
+
export declare function LanguageProvider({ children, languages, defaultLanguage, s3Config, onLanguageChange, }: LanguageProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
/**
|
|
55
|
+
* Hook pour utiliser le contexte de langue
|
|
56
|
+
*/
|
|
57
|
+
export declare function useLanguage(): LanguageContextValue;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { WakaThemeConfig, ThemeConfigItem } from '../types/provider';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export interface ThemeContextValue {
|
|
4
|
+
theme: string;
|
|
5
|
+
setTheme: (theme: string) => void;
|
|
6
|
+
themes: ThemeConfigItem[];
|
|
7
|
+
systemTheme?: string;
|
|
8
|
+
isLoadingThemes?: boolean;
|
|
9
|
+
themesSource?: "config" | "s3" | "fallback";
|
|
10
|
+
}
|
|
11
|
+
export interface ThemeProviderProps {
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
config?: WakaThemeConfig;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Provider de thème pour WakaStart UI
|
|
17
|
+
*
|
|
18
|
+
* Gère le thème actif, le stockage dans localStorage et la détection du thème système
|
|
19
|
+
* Charge automatiquement les thèmes depuis S3 si non fournis dans la config
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <ThemeProvider config={{ defaultTheme: "light", themes: ["light", "dark"] }}>
|
|
24
|
+
* <App />
|
|
25
|
+
* </ThemeProvider>
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function ThemeProvider({ children, config }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
/**
|
|
30
|
+
* Hook pour accéder au contexte du thème
|
|
31
|
+
*
|
|
32
|
+
* @throws {Error} Si utilisé en dehors d'un ThemeProvider
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* const { theme, setTheme, themes } = useTheme()
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function useTheme(): ThemeContextValue;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface ThemeS3Config {
|
|
3
|
+
/** URL de base du bucket S3 */
|
|
4
|
+
baseUrl: string;
|
|
5
|
+
/** Préfixe des fichiers (ex: "themes/") */
|
|
6
|
+
prefix?: string;
|
|
7
|
+
/** Extension des fichiers (défaut: "css") */
|
|
8
|
+
extension?: string;
|
|
9
|
+
/** Headers personnalisés pour les requêtes */
|
|
10
|
+
headers?: Record<string, string>;
|
|
11
|
+
/** Timeout en millisecondes */
|
|
12
|
+
timeout?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ThemeConfig {
|
|
15
|
+
/** Identifiant du thème (utilisé dans data-theme) */
|
|
16
|
+
id: string;
|
|
17
|
+
/** Nom d'affichage */
|
|
18
|
+
label: string;
|
|
19
|
+
/** Description optionnelle */
|
|
20
|
+
description?: string;
|
|
21
|
+
/** Couleur représentative du thème (pour preview) */
|
|
22
|
+
previewColor?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ThemeContextValue {
|
|
25
|
+
/** Thème courant */
|
|
26
|
+
currentTheme: string;
|
|
27
|
+
/** Liste des thèmes disponibles */
|
|
28
|
+
themes: ThemeConfig[];
|
|
29
|
+
/** Changer de thème */
|
|
30
|
+
changeTheme: (id: string) => Promise<void>;
|
|
31
|
+
/** État de chargement */
|
|
32
|
+
isLoading: boolean;
|
|
33
|
+
/** Thèmes chargés */
|
|
34
|
+
loadedThemes: Set<string>;
|
|
35
|
+
/** Mode dark actif */
|
|
36
|
+
isDarkMode: boolean;
|
|
37
|
+
/** Basculer le mode dark/light */
|
|
38
|
+
toggleDarkMode: () => void;
|
|
39
|
+
/** Précharger un thème */
|
|
40
|
+
preloadTheme: (id: string) => Promise<void>;
|
|
41
|
+
/** Vérifier si un thème est chargé */
|
|
42
|
+
isThemeLoaded: (id: string) => boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface ThemeProviderProps {
|
|
45
|
+
children: React.ReactNode;
|
|
46
|
+
/** Thèmes disponibles */
|
|
47
|
+
themes: ThemeConfig[];
|
|
48
|
+
/** Thème par défaut */
|
|
49
|
+
defaultTheme?: string;
|
|
50
|
+
/** Configuration S3 (optionnel - si non fourni, utilise les thèmes locaux) */
|
|
51
|
+
s3Config?: ThemeS3Config;
|
|
52
|
+
/** Callback après changement de thème */
|
|
53
|
+
onThemeChange?: (id: string) => void;
|
|
54
|
+
/** Activer le mode sombre (optionnel) */
|
|
55
|
+
enableDarkMode?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* ThemeProvider
|
|
59
|
+
*
|
|
60
|
+
* Provider pour gérer les thèmes et charger les CSS depuis S3 avec support TweakCN.
|
|
61
|
+
*
|
|
62
|
+
* Features:
|
|
63
|
+
* - Chargement dynamique des thèmes depuis S3
|
|
64
|
+
* - Cache des thèmes déjà chargés
|
|
65
|
+
* - Support TweakCN avec data-theme
|
|
66
|
+
* - Persistance dans localStorage
|
|
67
|
+
* - Préchargement de thèmes
|
|
68
|
+
* - Support des thèmes locaux si pas de S3
|
|
69
|
+
*/
|
|
70
|
+
export declare function ThemeProvider({ children, themes, defaultTheme, s3Config, onThemeChange, enableDarkMode, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
71
|
+
/**
|
|
72
|
+
* Hook pour utiliser le ThemeProvider
|
|
73
|
+
*/
|
|
74
|
+
export declare function useTheme(): ThemeContextValue;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { WakaProviderConfig, WakaProviderProps } from '../types/provider';
|
|
2
|
+
/**
|
|
3
|
+
* WakaProvider - Provider principal pour WakaStart UI
|
|
4
|
+
*
|
|
5
|
+
* Centralise la configuration du thème, de la langue et des traductions S3
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <WakaProvider config={{
|
|
10
|
+
* theme: {
|
|
11
|
+
* defaultTheme: "light",
|
|
12
|
+
* themes: ["light", "dark", "forest"],
|
|
13
|
+
* enableSystem: true
|
|
14
|
+
* },
|
|
15
|
+
* language: {
|
|
16
|
+
* defaultLanguage: "fr",
|
|
17
|
+
* supportedLanguages: ["fr", "en"],
|
|
18
|
+
* s3Config: {
|
|
19
|
+
* bucketUrl: "https://my-bucket.s3.amazonaws.com",
|
|
20
|
+
* translationsPath: "translations"
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* }}>
|
|
24
|
+
* <App />
|
|
25
|
+
* </WakaProvider>
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function WakaProvider({ children, config }: WakaProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
/**
|
|
30
|
+
* Hook pour accéder à la configuration du WakaProvider
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* const { changeLanguage, changeTheme, t } = useWaka()
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function useWaka(): {
|
|
38
|
+
currentLanguage: string;
|
|
39
|
+
changeLanguage: (lang: string) => Promise<void>;
|
|
40
|
+
languages: import('./language-context').LanguageConfig[];
|
|
41
|
+
isLanguageLoading: boolean;
|
|
42
|
+
currentTheme: string;
|
|
43
|
+
changeTheme: (id: string) => Promise<void>;
|
|
44
|
+
themes: import('./theme-provider').ThemeConfig[];
|
|
45
|
+
isThemeLoading: boolean;
|
|
46
|
+
preloadTheme: (id: string) => Promise<void>;
|
|
47
|
+
isThemeLoaded: (id: string) => boolean;
|
|
48
|
+
t: import('i18next').TFunction<"translation", undefined>;
|
|
49
|
+
};
|
|
50
|
+
export type { WakaProviderConfig, WakaProviderProps };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useToast, toast } from './use-toast';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ToastActionElement, ToastProps } from '../components/toast';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type ToasterToast = ToastProps & {
|
|
4
|
+
id: string;
|
|
5
|
+
title?: React.ReactNode;
|
|
6
|
+
description?: React.ReactNode;
|
|
7
|
+
action?: ToastActionElement;
|
|
8
|
+
};
|
|
9
|
+
declare const actionTypes: {
|
|
10
|
+
readonly ADD_TOAST: "ADD_TOAST";
|
|
11
|
+
readonly UPDATE_TOAST: "UPDATE_TOAST";
|
|
12
|
+
readonly DISMISS_TOAST: "DISMISS_TOAST";
|
|
13
|
+
readonly REMOVE_TOAST: "REMOVE_TOAST";
|
|
14
|
+
};
|
|
15
|
+
type ActionType = typeof actionTypes;
|
|
16
|
+
type Action = {
|
|
17
|
+
type: ActionType["ADD_TOAST"];
|
|
18
|
+
toast: ToasterToast;
|
|
19
|
+
} | {
|
|
20
|
+
type: ActionType["UPDATE_TOAST"];
|
|
21
|
+
toast: Partial<ToasterToast>;
|
|
22
|
+
} | {
|
|
23
|
+
type: ActionType["DISMISS_TOAST"];
|
|
24
|
+
toastId?: ToasterToast["id"];
|
|
25
|
+
} | {
|
|
26
|
+
type: ActionType["REMOVE_TOAST"];
|
|
27
|
+
toastId?: ToasterToast["id"];
|
|
28
|
+
};
|
|
29
|
+
interface State {
|
|
30
|
+
toasts: ToasterToast[];
|
|
31
|
+
}
|
|
32
|
+
export declare const reducer: (state: State, action: Action) => State;
|
|
33
|
+
type Toast = Omit<ToasterToast, "id">;
|
|
34
|
+
declare function toast({ ...props }: Toast): {
|
|
35
|
+
id: string;
|
|
36
|
+
dismiss: () => void;
|
|
37
|
+
update: (props: ToasterToast) => void;
|
|
38
|
+
};
|
|
39
|
+
declare function useToast(): {
|
|
40
|
+
toast: typeof toast;
|
|
41
|
+
dismiss: (toastId?: string) => void;
|
|
42
|
+
toasts: ToasterToast[];
|
|
43
|
+
};
|
|
44
|
+
export { useToast, toast };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook pour utiliser les traductions dans les composants
|
|
3
|
+
*
|
|
4
|
+
* Wrapper autour de useTranslation de react-i18next qui s'assure
|
|
5
|
+
* que i18next est correctement initialisé avant de retourner les fonctions.
|
|
6
|
+
*
|
|
7
|
+
* Si i18next n'est pas encore prêt, retourne la clé de traduction telle quelle.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* const { t } = useTranslation()
|
|
12
|
+
* return <div>{t('hello')}</div>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function useTranslation(): any;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ToastActionElement, ToastProps } from '../components/toast';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type ToasterToast = ToastProps & {
|
|
4
|
+
id: string;
|
|
5
|
+
title?: React.ReactNode;
|
|
6
|
+
description?: React.ReactNode;
|
|
7
|
+
action?: ToastActionElement;
|
|
8
|
+
};
|
|
9
|
+
declare const actionTypes: {
|
|
10
|
+
readonly ADD_TOAST: "ADD_TOAST";
|
|
11
|
+
readonly UPDATE_TOAST: "UPDATE_TOAST";
|
|
12
|
+
readonly DISMISS_TOAST: "DISMISS_TOAST";
|
|
13
|
+
readonly REMOVE_TOAST: "REMOVE_TOAST";
|
|
14
|
+
};
|
|
15
|
+
type ActionType = typeof actionTypes;
|
|
16
|
+
type Action = {
|
|
17
|
+
type: ActionType["ADD_TOAST"];
|
|
18
|
+
toast: ToasterToast;
|
|
19
|
+
} | {
|
|
20
|
+
type: ActionType["UPDATE_TOAST"];
|
|
21
|
+
toast: Partial<ToasterToast>;
|
|
22
|
+
} | {
|
|
23
|
+
type: ActionType["DISMISS_TOAST"];
|
|
24
|
+
toastId?: ToasterToast["id"];
|
|
25
|
+
} | {
|
|
26
|
+
type: ActionType["REMOVE_TOAST"];
|
|
27
|
+
toastId?: ToasterToast["id"];
|
|
28
|
+
};
|
|
29
|
+
interface State {
|
|
30
|
+
toasts: ToasterToast[];
|
|
31
|
+
}
|
|
32
|
+
export declare const reducer: (state: State, action: Action) => State;
|
|
33
|
+
type Toast = Omit<ToasterToast, "id">;
|
|
34
|
+
declare function toast({ ...props }: Toast): {
|
|
35
|
+
id: string;
|
|
36
|
+
dismiss: () => void;
|
|
37
|
+
update: (props: ToasterToast) => void;
|
|
38
|
+
};
|
|
39
|
+
declare function useToast(): {
|
|
40
|
+
toast: typeof toast;
|
|
41
|
+
dismiss: (toastId?: string) => void;
|
|
42
|
+
toasts: ToasterToast[];
|
|
43
|
+
};
|
|
44
|
+
export { useToast, toast };
|