@botuyo/chat-widget-standalone 1.0.0 → 1.0.2
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/README.md +243 -290
- package/dist/{ChatWidget-B6W68bT_.js → ChatWidget-BCHSZnMy.js} +17 -17
- package/dist/{ChatWidget-B6W68bT_.js.map → ChatWidget-BCHSZnMy.js.map} +1 -1
- package/dist/botuyo-chat.css +1 -1
- package/dist/botuyo-chat.js +1 -1
- package/dist/{chunk-audio-CgduwQLl.js → chunk-audio-BT2WWPfS.js} +2 -2
- package/dist/{chunk-audio-CgduwQLl.js.map → chunk-audio-BT2WWPfS.js.map} +1 -1
- package/dist/{chunk-chat-ui-EAAXXtnK.js → chunk-chat-ui-BHfnFN_3.js} +10 -10
- package/dist/{chunk-chat-ui-EAAXXtnK.js.map → chunk-chat-ui-BHfnFN_3.js.map} +1 -1
- package/dist/{chunk-gallery-B9sBFYYc.js → chunk-gallery-CHMxgXlB.js} +2 -2
- package/dist/{chunk-gallery-B9sBFYYc.js.map → chunk-gallery-CHMxgXlB.js.map} +1 -1
- package/dist/src/chat-widget/ChatWidget.d.ts +3 -0
- package/dist/src/chat-widget/ChatWidget.d.ts.map +1 -0
- package/dist/src/chat-widget/ChatWidgetProvider.d.ts +81 -0
- package/dist/src/chat-widget/ChatWidgetProvider.d.ts.map +1 -0
- package/dist/src/chat-widget/components/AudioPlayer.d.ts +8 -0
- package/dist/src/chat-widget/components/AudioPlayer.d.ts.map +1 -0
- package/dist/src/chat-widget/components/AudioPlayer.stories.d.ts +37 -0
- package/dist/src/chat-widget/components/AudioPlayer.stories.d.ts.map +1 -0
- package/dist/src/chat-widget/components/ChatWindow.d.ts +28 -0
- package/dist/src/chat-widget/components/ChatWindow.d.ts.map +1 -0
- package/dist/src/chat-widget/components/ChatWindow.stories.d.ts +71 -0
- package/dist/src/chat-widget/components/ChatWindow.stories.d.ts.map +1 -0
- package/dist/src/chat-widget/components/ErrorBoundary.d.ts +36 -0
- package/dist/src/chat-widget/components/ErrorBoundary.d.ts.map +1 -0
- package/dist/src/chat-widget/components/ErrorBoundary.stories.d.ts +29 -0
- package/dist/src/chat-widget/components/ErrorBoundary.stories.d.ts.map +1 -0
- package/dist/src/chat-widget/components/Gallery.d.ts +14 -0
- package/dist/src/chat-widget/components/Gallery.d.ts.map +1 -0
- package/dist/src/chat-widget/components/Gallery.stories.d.ts +33 -0
- package/dist/src/chat-widget/components/Gallery.stories.d.ts.map +1 -0
- package/dist/src/chat-widget/components/Icons.d.ts +7 -0
- package/dist/src/chat-widget/components/Icons.d.ts.map +1 -0
- package/dist/src/chat-widget/components/InputArea.d.ts +20 -0
- package/dist/src/chat-widget/components/InputArea.d.ts.map +1 -0
- package/dist/src/chat-widget/components/InputArea.stories.d.ts +61 -0
- package/dist/src/chat-widget/components/InputArea.stories.d.ts.map +1 -0
- package/dist/src/chat-widget/components/LanguageSelector.d.ts +25 -0
- package/dist/src/chat-widget/components/LanguageSelector.d.ts.map +1 -0
- package/dist/src/chat-widget/components/Launcher.d.ts +21 -0
- package/dist/src/chat-widget/components/Launcher.d.ts.map +1 -0
- package/dist/src/chat-widget/components/Launcher.stories.d.ts +75 -0
- package/dist/src/chat-widget/components/Launcher.stories.d.ts.map +1 -0
- package/dist/src/chat-widget/components/LiveCallInputArea.d.ts +29 -0
- package/dist/src/chat-widget/components/LiveCallInputArea.d.ts.map +1 -0
- package/dist/src/chat-widget/components/MessageBubble.d.ts +14 -0
- package/dist/src/chat-widget/components/MessageBubble.d.ts.map +1 -0
- package/dist/src/chat-widget/components/MessageBubble.stories.d.ts +70 -0
- package/dist/src/chat-widget/components/MessageBubble.stories.d.ts.map +1 -0
- package/dist/src/chat-widget/components/MessageList.d.ts +15 -0
- package/dist/src/chat-widget/components/MessageList.d.ts.map +1 -0
- package/dist/src/chat-widget/components/MessageList.stories.d.ts +52 -0
- package/dist/src/chat-widget/components/MessageList.stories.d.ts.map +1 -0
- package/dist/src/chat-widget/components/TypingIndicator.d.ts +2 -0
- package/dist/src/chat-widget/components/TypingIndicator.d.ts.map +1 -0
- package/dist/src/chat-widget/components/TypingIndicator.stories.d.ts +39 -0
- package/dist/src/chat-widget/components/TypingIndicator.stories.d.ts.map +1 -0
- package/dist/src/chat-widget/components/VoiceInputArea.d.ts +26 -0
- package/dist/src/chat-widget/components/VoiceInputArea.d.ts.map +1 -0
- package/dist/src/chat-widget/components/index.d.ts +16 -0
- package/dist/src/chat-widget/components/index.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useAnalytics.d.ts +19 -0
- package/dist/src/chat-widget/hooks/useAnalytics.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useChatSocket.d.ts +30 -0
- package/dist/src/chat-widget/hooks/useChatSocket.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useChatState.d.ts +23 -0
- package/dist/src/chat-widget/hooks/useChatState.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useChatWidget.d.ts +48 -0
- package/dist/src/chat-widget/hooks/useChatWidget.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useDarkMode.d.ts +6 -0
- package/dist/src/chat-widget/hooks/useDarkMode.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useDynamicHeight.d.ts +10 -0
- package/dist/src/chat-widget/hooks/useDynamicHeight.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useFocusTrap.d.ts +34 -0
- package/dist/src/chat-widget/hooks/useFocusTrap.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useHighContrast.d.ts +6 -0
- package/dist/src/chat-widget/hooks/useHighContrast.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useIsMobile.d.ts +2 -0
- package/dist/src/chat-widget/hooks/useIsMobile.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useNotifications.d.ts +23 -0
- package/dist/src/chat-widget/hooks/useNotifications.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useRateLimit.d.ts +15 -0
- package/dist/src/chat-widget/hooks/useRateLimit.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useSEOMetadata.d.ts +10 -0
- package/dist/src/chat-widget/hooks/useSEOMetadata.d.ts.map +1 -0
- package/dist/src/chat-widget/hooks/useWidgetTheme.d.ts +12 -0
- package/dist/src/chat-widget/hooks/useWidgetTheme.d.ts.map +1 -0
- package/dist/src/chat-widget/i18n/LanguageContext.d.ts +33 -0
- package/dist/src/chat-widget/i18n/LanguageContext.d.ts.map +1 -0
- package/dist/src/chat-widget/i18n/index.d.ts +8 -0
- package/dist/src/chat-widget/i18n/index.d.ts.map +1 -0
- package/dist/src/chat-widget/i18n/translations.d.ts +177 -0
- package/dist/src/chat-widget/i18n/translations.d.ts.map +1 -0
- package/dist/src/chat-widget/i18n/useTranslations.d.ts +27 -0
- package/dist/src/chat-widget/i18n/useTranslations.d.ts.map +1 -0
- package/dist/src/chat-widget/index.d.ts +11 -0
- package/dist/src/chat-widget/index.d.ts.map +1 -0
- package/dist/src/chat-widget/types/index.d.ts +268 -0
- package/dist/src/chat-widget/types/index.d.ts.map +1 -0
- package/dist/src/chat-widget/types/socket.d.ts +101 -0
- package/dist/src/chat-widget/types/socket.d.ts.map +1 -0
- package/dist/src/chat-widget/utils/dateUtils.d.ts +33 -0
- package/dist/src/chat-widget/utils/dateUtils.d.ts.map +1 -0
- package/dist/src/chat-widget/utils/defaultAssets.d.ts +20 -0
- package/dist/src/chat-widget/utils/defaultAssets.d.ts.map +1 -0
- package/dist/src/chat-widget/utils/deviceId.d.ts +18 -0
- package/dist/src/chat-widget/utils/deviceId.d.ts.map +1 -0
- package/dist/src/chat-widget/utils/fileValidation.d.ts +75 -0
- package/dist/src/chat-widget/utils/fileValidation.d.ts.map +1 -0
- package/dist/src/chat-widget/utils/logger.d.ts +31 -0
- package/dist/src/chat-widget/utils/logger.d.ts.map +1 -0
- package/dist/src/chat-widget/utils/performance.d.ts +50 -0
- package/dist/src/chat-widget/utils/performance.d.ts.map +1 -0
- package/dist/src/chat-widget/utils/storage.d.ts +24 -0
- package/dist/src/chat-widget/utils/storage.d.ts.map +1 -0
- package/dist/src/chat-widget/utils/theme.d.ts +122 -0
- package/dist/src/chat-widget/utils/theme.d.ts.map +1 -0
- package/dist/src/chat-widget/utils/theme.examples.d.ts +47 -0
- package/dist/src/chat-widget/utils/theme.examples.d.ts.map +1 -0
- package/dist/src/chat-widget/utils/themes/index.d.ts +12 -0
- package/dist/src/chat-widget/utils/themes/index.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/components/CallButton.d.ts +12 -0
- package/dist/src/chat-widget/voice/components/CallButton.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/components/LiveCallOverlay.d.ts +12 -0
- package/dist/src/chat-widget/voice/components/LiveCallOverlay.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/components/VoiceButton.d.ts +13 -0
- package/dist/src/chat-widget/voice/components/VoiceButton.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/components/VoiceChatOverlay.d.ts +12 -0
- package/dist/src/chat-widget/voice/components/VoiceChatOverlay.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/components/WaveformVisualizer.d.ts +12 -0
- package/dist/src/chat-widget/voice/components/WaveformVisualizer.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/components/index.d.ts +10 -0
- package/dist/src/chat-widget/voice/components/index.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/index.d.ts +11 -0
- package/dist/src/chat-widget/voice/index.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/types.d.ts +232 -0
- package/dist/src/chat-widget/voice/types.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/useLiveCall.d.ts +13 -0
- package/dist/src/chat-widget/voice/useLiveCall.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/useVoiceChat.d.ts +13 -0
- package/dist/src/chat-widget/voice/useVoiceChat.d.ts.map +1 -0
- package/dist/src/chat-widget/voice/useVoiceState.d.ts +38 -0
- package/dist/src/chat-widget/voice/useVoiceState.d.ts.map +1 -0
- package/dist/src/lib/utils.d.ts +3 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/standalone.d.ts +95 -0
- package/dist/standalone.d.ts.map +1 -0
- package/dist/stats.html +1 -1
- package/package.json +3 -7
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @package @botuyo/chat-widget
|
|
3
|
+
* Focus management hook for accessible dialogs
|
|
4
|
+
*
|
|
5
|
+
* Principio: Single Responsibility - solo gestionar el foco del teclado
|
|
6
|
+
*/
|
|
7
|
+
interface UseFocusTrapOptions {
|
|
8
|
+
/** Si el trap está activo */
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
/** Elemento al que retornar el foco al desactivar */
|
|
11
|
+
returnFocusRef?: React.RefObject<HTMLElement>;
|
|
12
|
+
/** Callback al cerrar con Escape */
|
|
13
|
+
onEscape?: () => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Hook para atrapar el foco dentro de un contenedor (dialog, modal)
|
|
17
|
+
*
|
|
18
|
+
* Características:
|
|
19
|
+
* - Previene que Tab salga del contenedor
|
|
20
|
+
* - Retorna el foco al elemento anterior al cerrar
|
|
21
|
+
* - Cierra con tecla Escape
|
|
22
|
+
* - Compatible con lectores de pantalla
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* const containerRef = useFocusTrap({
|
|
26
|
+
* enabled: isOpen,
|
|
27
|
+
* onEscape: handleClose
|
|
28
|
+
* })
|
|
29
|
+
*
|
|
30
|
+
* return <div ref={containerRef}>...</div>
|
|
31
|
+
*/
|
|
32
|
+
export declare function useFocusTrap({ enabled, returnFocusRef, onEscape }: UseFocusTrapOptions): import("react").RefObject<HTMLDivElement | null>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=useFocusTrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFocusTrap.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/hooks/useFocusTrap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,mBAAmB;IAC3B,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,qDAAqD;IACrD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAC7C,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,mBAAmB,oDA+EtF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHighContrast.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/hooks/useHighContrast.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAgB,eAAe,YA4B9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsMobile.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/hooks/useIsMobile.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,UAAU,SAAM,WAkB3C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @package @botuyo/chat-widget
|
|
3
|
+
* Hook para notificaciones desktop y sonoras
|
|
4
|
+
*/
|
|
5
|
+
import type { ChatMessage } from '../types';
|
|
6
|
+
export interface UseNotificationsOptions {
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
soundEnabled?: boolean;
|
|
9
|
+
desktopEnabled?: boolean;
|
|
10
|
+
botName?: string;
|
|
11
|
+
/** Custom logo URL. If not provided, uses bundled default avatar */
|
|
12
|
+
logoUrl?: string;
|
|
13
|
+
/** Custom notification sound URL. If not provided, uses bundled default sound */
|
|
14
|
+
notificationSoundUrl?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function useNotifications({ enabled, soundEnabled, desktopEnabled, botName, logoUrl, notificationSoundUrl, }?: UseNotificationsOptions): {
|
|
17
|
+
permission: NotificationPermission;
|
|
18
|
+
requestPermission: () => Promise<boolean>;
|
|
19
|
+
notify: (message: ChatMessage) => void;
|
|
20
|
+
playSound: () => void;
|
|
21
|
+
notifyWithSound: (message: ChatMessage) => void;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=useNotifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/hooks/useNotifications.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAI3C,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,OAAc,EACd,YAAmB,EACnB,cAAqB,EACrB,OAAqB,EACrB,OAAO,EACP,oBAAoB,GACrB,GAAE,uBAA4B;;;sBA0CjB,WAAW;;+BA2DX,WAAW;EAcxB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @package @botuyo/chat-widget
|
|
3
|
+
* Hook para rate limiting y protección contra spam
|
|
4
|
+
*/
|
|
5
|
+
export interface UseRateLimitOptions {
|
|
6
|
+
maxMessages: number;
|
|
7
|
+
windowMs: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function useRateLimit(maxMessages?: number, windowMs?: number): {
|
|
10
|
+
isAllowed: () => boolean;
|
|
11
|
+
getRemainingAttempts: () => number;
|
|
12
|
+
getTimeUntilReset: () => number;
|
|
13
|
+
reset: () => void;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=useRateLimit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRateLimit.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/hooks/useRateLimit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,YAAY,CAAC,WAAW,SAAK,EAAE,QAAQ,SAAQ;;;;;EA6C9D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook interno del widget para capturar metadata SEO del DOM
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Hook para capturar metadata SEO
|
|
6
|
+
* @param enabled - Si está habilitado
|
|
7
|
+
* @param pathname - Pathname actual para detectar cambios de página
|
|
8
|
+
*/
|
|
9
|
+
export declare function useSEOMetadata(enabled?: boolean): Record<string, any> | undefined;
|
|
10
|
+
//# sourceMappingURL=useSEOMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSEOMetadata.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/hooks/useSEOMetadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiFH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,OAAe,mCAqBtD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ChatTheme, BubbleStyles } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Hook para gestionar el tema del widget
|
|
4
|
+
* Maneja el merge de temas con prioridades: proyecto > socket > default
|
|
5
|
+
* También gestiona alto contraste y estilos de burbujas
|
|
6
|
+
*/
|
|
7
|
+
export declare function useWidgetTheme(projectTheme?: ChatTheme, socketTheme?: ChatTheme): {
|
|
8
|
+
mergedTheme: Required<Omit<ChatTheme, "defaultLocale" | "avatars" | "emotion" | "starterPrompt" | "launcherBorderRadius" | "borderRadius" | "bubbleStyles" | "promptPersistence" | "avatarScale" | "height" | "bottom">>;
|
|
9
|
+
mergedStyles: BubbleStyles;
|
|
10
|
+
getContainerStyle: (isOpen: boolean, isMobile: boolean, position?: "bottom-left" | "bottom-right") => React.CSSProperties;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useWidgetTheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetTheme.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/hooks/useWidgetTheme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAqBvD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS;;;gCA+CpE,OAAO,YACL,OAAO,aACN,aAAa,GAAG,cAAc,KACxC,KAAK,CAAC,aAAa;EAqBvB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contexto de idioma para el Chat Widget
|
|
3
|
+
* Permite cambio dinámico de idioma con persistencia en localStorage
|
|
4
|
+
*/
|
|
5
|
+
import { type ReactNode } from 'react';
|
|
6
|
+
import { type SupportedLocale } from './translations';
|
|
7
|
+
interface LanguageContextType {
|
|
8
|
+
locale: SupportedLocale;
|
|
9
|
+
setLocale: (locale: SupportedLocale) => void;
|
|
10
|
+
}
|
|
11
|
+
interface LanguageProviderProps {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
defaultLocale?: SupportedLocale;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Provider de idioma con detección automática y persistencia
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <LanguageProvider>
|
|
20
|
+
* <ChatWidget />
|
|
21
|
+
* </LanguageProvider>
|
|
22
|
+
*/
|
|
23
|
+
export declare function LanguageProvider({ children, defaultLocale }: LanguageProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
/**
|
|
25
|
+
* Hook para acceder al idioma actual del widget
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* const { locale, setLocale } = useLanguage()
|
|
29
|
+
* setLocale('en') // Cambiar a inglés
|
|
30
|
+
*/
|
|
31
|
+
export declare function useLanguage(): LanguageContextType;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=LanguageContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguageContext.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/i18n/LanguageContext.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAkD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACtF,OAAO,EAAE,KAAK,eAAe,EAAkB,MAAM,gBAAgB,CAAA;AAErE,UAAU,mBAAmB;IAC3B,MAAM,EAAE,eAAe,CAAA;IACvB,SAAS,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;CAC7C;AAMD,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,SAAS,CAAA;IACnB,aAAa,CAAC,EAAE,eAAe,CAAA;CAChC;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,qBAAqB,2CAgDlF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,wBAM1B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sistema de internacionalización del Chat Widget
|
|
3
|
+
* Exportaciones centralizadas
|
|
4
|
+
*/
|
|
5
|
+
export { useTranslations, t, default } from './useTranslations';
|
|
6
|
+
export { translations, detectLanguage, type SupportedLocale } from './translations';
|
|
7
|
+
export { LanguageProvider, useLanguage } from './LanguageContext';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/i18n/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sistema de internacionalización del Chat Widget
|
|
3
|
+
* Idiomas soportados: español, inglés, portugués, francés
|
|
4
|
+
*/
|
|
5
|
+
export declare const translations: {
|
|
6
|
+
es: {
|
|
7
|
+
online: string;
|
|
8
|
+
offline: string;
|
|
9
|
+
connecting: string;
|
|
10
|
+
con_amor_paseo_libre: string;
|
|
11
|
+
preview: string;
|
|
12
|
+
fotos: string;
|
|
13
|
+
ubicacion: string;
|
|
14
|
+
input_placeholder: string;
|
|
15
|
+
send: string;
|
|
16
|
+
attach_photo: string;
|
|
17
|
+
attach_location: string;
|
|
18
|
+
recording: string;
|
|
19
|
+
rate_limit_exceeded: string;
|
|
20
|
+
connection_error: string;
|
|
21
|
+
file_too_large: string;
|
|
22
|
+
invalid_file: string;
|
|
23
|
+
extracted: {
|
|
24
|
+
assistant: string;
|
|
25
|
+
anterior: string;
|
|
26
|
+
siguiente: string;
|
|
27
|
+
cerrar: string;
|
|
28
|
+
cerrar_chat: string;
|
|
29
|
+
abrir_chat: string;
|
|
30
|
+
ver_ubicacion: string;
|
|
31
|
+
};
|
|
32
|
+
accessibility: {
|
|
33
|
+
closeChat: string;
|
|
34
|
+
closeChatHint: string;
|
|
35
|
+
chatMessages: string;
|
|
36
|
+
messageHistory: string;
|
|
37
|
+
dialogDescription: string;
|
|
38
|
+
sendMessage: string;
|
|
39
|
+
sendMessageHint: string;
|
|
40
|
+
typeMessage: string;
|
|
41
|
+
botMessage: string;
|
|
42
|
+
userMessage: string;
|
|
43
|
+
messageFrom: string;
|
|
44
|
+
messageTime: string;
|
|
45
|
+
newMessage: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
en: {
|
|
49
|
+
online: string;
|
|
50
|
+
offline: string;
|
|
51
|
+
connecting: string;
|
|
52
|
+
con_amor_paseo_libre: string;
|
|
53
|
+
preview: string;
|
|
54
|
+
fotos: string;
|
|
55
|
+
ubicacion: string;
|
|
56
|
+
input_placeholder: string;
|
|
57
|
+
send: string;
|
|
58
|
+
attach_photo: string;
|
|
59
|
+
attach_location: string;
|
|
60
|
+
recording: string;
|
|
61
|
+
rate_limit_exceeded: string;
|
|
62
|
+
connection_error: string;
|
|
63
|
+
file_too_large: string;
|
|
64
|
+
invalid_file: string;
|
|
65
|
+
extracted: {
|
|
66
|
+
assistant: string;
|
|
67
|
+
anterior: string;
|
|
68
|
+
siguiente: string;
|
|
69
|
+
cerrar: string;
|
|
70
|
+
cerrar_chat: string;
|
|
71
|
+
abrir_chat: string;
|
|
72
|
+
ver_ubicacion: string;
|
|
73
|
+
};
|
|
74
|
+
accessibility: {
|
|
75
|
+
closeChat: string;
|
|
76
|
+
closeChatHint: string;
|
|
77
|
+
chatMessages: string;
|
|
78
|
+
messageHistory: string;
|
|
79
|
+
dialogDescription: string;
|
|
80
|
+
sendMessage: string;
|
|
81
|
+
sendMessageHint: string;
|
|
82
|
+
typeMessage: string;
|
|
83
|
+
botMessage: string;
|
|
84
|
+
userMessage: string;
|
|
85
|
+
messageFrom: string;
|
|
86
|
+
messageTime: string;
|
|
87
|
+
newMessage: string;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
pt: {
|
|
91
|
+
online: string;
|
|
92
|
+
offline: string;
|
|
93
|
+
connecting: string;
|
|
94
|
+
con_amor_paseo_libre: string;
|
|
95
|
+
preview: string;
|
|
96
|
+
fotos: string;
|
|
97
|
+
ubicacion: string;
|
|
98
|
+
input_placeholder: string;
|
|
99
|
+
send: string;
|
|
100
|
+
attach_photo: string;
|
|
101
|
+
attach_location: string;
|
|
102
|
+
recording: string;
|
|
103
|
+
rate_limit_exceeded: string;
|
|
104
|
+
connection_error: string;
|
|
105
|
+
file_too_large: string;
|
|
106
|
+
invalid_file: string;
|
|
107
|
+
extracted: {
|
|
108
|
+
assistant: string;
|
|
109
|
+
anterior: string;
|
|
110
|
+
siguiente: string;
|
|
111
|
+
cerrar: string;
|
|
112
|
+
cerrar_chat: string;
|
|
113
|
+
abrir_chat: string;
|
|
114
|
+
ver_ubicacion: string;
|
|
115
|
+
};
|
|
116
|
+
accessibility: {
|
|
117
|
+
closeChat: string;
|
|
118
|
+
closeChatHint: string;
|
|
119
|
+
chatMessages: string;
|
|
120
|
+
messageHistory: string;
|
|
121
|
+
dialogDescription: string;
|
|
122
|
+
sendMessage: string;
|
|
123
|
+
sendMessageHint: string;
|
|
124
|
+
typeMessage: string;
|
|
125
|
+
botMessage: string;
|
|
126
|
+
userMessage: string;
|
|
127
|
+
messageFrom: string;
|
|
128
|
+
messageTime: string;
|
|
129
|
+
newMessage: string;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
fr: {
|
|
133
|
+
online: string;
|
|
134
|
+
offline: string;
|
|
135
|
+
connecting: string;
|
|
136
|
+
con_amor_paseo_libre: string;
|
|
137
|
+
preview: string;
|
|
138
|
+
fotos: string;
|
|
139
|
+
ubicacion: string;
|
|
140
|
+
input_placeholder: string;
|
|
141
|
+
send: string;
|
|
142
|
+
attach_photo: string;
|
|
143
|
+
attach_location: string;
|
|
144
|
+
recording: string;
|
|
145
|
+
rate_limit_exceeded: string;
|
|
146
|
+
connection_error: string;
|
|
147
|
+
file_too_large: string;
|
|
148
|
+
invalid_file: string;
|
|
149
|
+
extracted: {
|
|
150
|
+
assistant: string;
|
|
151
|
+
anterior: string;
|
|
152
|
+
siguiente: string;
|
|
153
|
+
cerrar: string;
|
|
154
|
+
cerrar_chat: string;
|
|
155
|
+
abrir_chat: string;
|
|
156
|
+
ver_ubicacion: string;
|
|
157
|
+
};
|
|
158
|
+
accessibility: {
|
|
159
|
+
closeChat: string;
|
|
160
|
+
closeChatHint: string;
|
|
161
|
+
chatMessages: string;
|
|
162
|
+
messageHistory: string;
|
|
163
|
+
dialogDescription: string;
|
|
164
|
+
sendMessage: string;
|
|
165
|
+
sendMessageHint: string;
|
|
166
|
+
typeMessage: string;
|
|
167
|
+
botMessage: string;
|
|
168
|
+
userMessage: string;
|
|
169
|
+
messageFrom: string;
|
|
170
|
+
messageTime: string;
|
|
171
|
+
newMessage: string;
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
export type SupportedLocale = keyof typeof translations;
|
|
176
|
+
export declare function detectLanguage(): SupportedLocale;
|
|
177
|
+
//# sourceMappingURL=translations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/i18n/translations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyNxB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,YAAY,CAAA;AAGvD,wBAAgB,cAAc,IAAI,eAAe,CAKhD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook de internacionalización para el Chat Widget
|
|
3
|
+
* Sistema multi-idioma con detección automática y contexto global
|
|
4
|
+
*/
|
|
5
|
+
import { type SupportedLocale } from './translations';
|
|
6
|
+
/**
|
|
7
|
+
* Hook para acceder a las traducciones con soporte multi-idioma
|
|
8
|
+
* Usa el contexto global de idioma automáticamente
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* const { t, setLocale, currentLocale } = useTranslations()
|
|
12
|
+
* t('online') // 'En línea' (si locale es 'es')
|
|
13
|
+
* t('extracted.cerrar') // 'Cerrar'
|
|
14
|
+
* setLocale('en') // Cambiar a inglés
|
|
15
|
+
*/
|
|
16
|
+
export declare function useTranslations(namespace?: string): {
|
|
17
|
+
t: (key: string) => string;
|
|
18
|
+
setLocale: (locale: SupportedLocale) => void;
|
|
19
|
+
currentLocale: "es" | "en" | "pt" | "fr";
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Función para obtener traducción directamente sin hook
|
|
23
|
+
* Útil para uso fuera de componentes
|
|
24
|
+
*/
|
|
25
|
+
export declare function t(key: string, locale?: SupportedLocale): string;
|
|
26
|
+
export default useTranslations;
|
|
27
|
+
//# sourceMappingURL=useTranslations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTranslations.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/i18n/useTranslations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAQnE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM;aAIxC,MAAM,KAAG,MAAM;;;EAcxB;AAED;;;GAGG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,eAAsB,GAAG,MAAM,CAErE;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @package @botuyo/chat-widget
|
|
3
|
+
* Entry Point - Exporta el componente principal, Provider y tipos
|
|
4
|
+
*/
|
|
5
|
+
export { ChatWidget } from './ChatWidget';
|
|
6
|
+
export { ChatWidgetProvider, useChatWidget } from './ChatWidgetProvider';
|
|
7
|
+
export type { ChatWidgetContextValue } from './ChatWidgetProvider';
|
|
8
|
+
export type { ChatWidgetProps, ChatTheme, UserContext, ChatMessage, TextMessage, ImageMessage, AudioMessage, LocationMessage, PageContext, BubbleStyles, AuthenticatedUser, } from './types';
|
|
9
|
+
export type { ChatWidgetProviderProps } from './ChatWidgetProvider';
|
|
10
|
+
export { ChatWidgetProvider as default } from './ChatWidgetProvider';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chat-widget/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACxE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAGlE,YAAY,EACV,eAAe,EACf,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,iBAAiB,GAClB,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAGnE,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA"}
|