@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.
Files changed (149) hide show
  1. package/README.md +243 -290
  2. package/dist/{ChatWidget-B6W68bT_.js → ChatWidget-BCHSZnMy.js} +17 -17
  3. package/dist/{ChatWidget-B6W68bT_.js.map → ChatWidget-BCHSZnMy.js.map} +1 -1
  4. package/dist/botuyo-chat.css +1 -1
  5. package/dist/botuyo-chat.js +1 -1
  6. package/dist/{chunk-audio-CgduwQLl.js → chunk-audio-BT2WWPfS.js} +2 -2
  7. package/dist/{chunk-audio-CgduwQLl.js.map → chunk-audio-BT2WWPfS.js.map} +1 -1
  8. package/dist/{chunk-chat-ui-EAAXXtnK.js → chunk-chat-ui-BHfnFN_3.js} +10 -10
  9. package/dist/{chunk-chat-ui-EAAXXtnK.js.map → chunk-chat-ui-BHfnFN_3.js.map} +1 -1
  10. package/dist/{chunk-gallery-B9sBFYYc.js → chunk-gallery-CHMxgXlB.js} +2 -2
  11. package/dist/{chunk-gallery-B9sBFYYc.js.map → chunk-gallery-CHMxgXlB.js.map} +1 -1
  12. package/dist/src/chat-widget/ChatWidget.d.ts +3 -0
  13. package/dist/src/chat-widget/ChatWidget.d.ts.map +1 -0
  14. package/dist/src/chat-widget/ChatWidgetProvider.d.ts +81 -0
  15. package/dist/src/chat-widget/ChatWidgetProvider.d.ts.map +1 -0
  16. package/dist/src/chat-widget/components/AudioPlayer.d.ts +8 -0
  17. package/dist/src/chat-widget/components/AudioPlayer.d.ts.map +1 -0
  18. package/dist/src/chat-widget/components/AudioPlayer.stories.d.ts +37 -0
  19. package/dist/src/chat-widget/components/AudioPlayer.stories.d.ts.map +1 -0
  20. package/dist/src/chat-widget/components/ChatWindow.d.ts +28 -0
  21. package/dist/src/chat-widget/components/ChatWindow.d.ts.map +1 -0
  22. package/dist/src/chat-widget/components/ChatWindow.stories.d.ts +71 -0
  23. package/dist/src/chat-widget/components/ChatWindow.stories.d.ts.map +1 -0
  24. package/dist/src/chat-widget/components/ErrorBoundary.d.ts +36 -0
  25. package/dist/src/chat-widget/components/ErrorBoundary.d.ts.map +1 -0
  26. package/dist/src/chat-widget/components/ErrorBoundary.stories.d.ts +29 -0
  27. package/dist/src/chat-widget/components/ErrorBoundary.stories.d.ts.map +1 -0
  28. package/dist/src/chat-widget/components/Gallery.d.ts +14 -0
  29. package/dist/src/chat-widget/components/Gallery.d.ts.map +1 -0
  30. package/dist/src/chat-widget/components/Gallery.stories.d.ts +33 -0
  31. package/dist/src/chat-widget/components/Gallery.stories.d.ts.map +1 -0
  32. package/dist/src/chat-widget/components/Icons.d.ts +7 -0
  33. package/dist/src/chat-widget/components/Icons.d.ts.map +1 -0
  34. package/dist/src/chat-widget/components/InputArea.d.ts +20 -0
  35. package/dist/src/chat-widget/components/InputArea.d.ts.map +1 -0
  36. package/dist/src/chat-widget/components/InputArea.stories.d.ts +61 -0
  37. package/dist/src/chat-widget/components/InputArea.stories.d.ts.map +1 -0
  38. package/dist/src/chat-widget/components/LanguageSelector.d.ts +25 -0
  39. package/dist/src/chat-widget/components/LanguageSelector.d.ts.map +1 -0
  40. package/dist/src/chat-widget/components/Launcher.d.ts +21 -0
  41. package/dist/src/chat-widget/components/Launcher.d.ts.map +1 -0
  42. package/dist/src/chat-widget/components/Launcher.stories.d.ts +75 -0
  43. package/dist/src/chat-widget/components/Launcher.stories.d.ts.map +1 -0
  44. package/dist/src/chat-widget/components/LiveCallInputArea.d.ts +29 -0
  45. package/dist/src/chat-widget/components/LiveCallInputArea.d.ts.map +1 -0
  46. package/dist/src/chat-widget/components/MessageBubble.d.ts +14 -0
  47. package/dist/src/chat-widget/components/MessageBubble.d.ts.map +1 -0
  48. package/dist/src/chat-widget/components/MessageBubble.stories.d.ts +70 -0
  49. package/dist/src/chat-widget/components/MessageBubble.stories.d.ts.map +1 -0
  50. package/dist/src/chat-widget/components/MessageList.d.ts +15 -0
  51. package/dist/src/chat-widget/components/MessageList.d.ts.map +1 -0
  52. package/dist/src/chat-widget/components/MessageList.stories.d.ts +52 -0
  53. package/dist/src/chat-widget/components/MessageList.stories.d.ts.map +1 -0
  54. package/dist/src/chat-widget/components/TypingIndicator.d.ts +2 -0
  55. package/dist/src/chat-widget/components/TypingIndicator.d.ts.map +1 -0
  56. package/dist/src/chat-widget/components/TypingIndicator.stories.d.ts +39 -0
  57. package/dist/src/chat-widget/components/TypingIndicator.stories.d.ts.map +1 -0
  58. package/dist/src/chat-widget/components/VoiceInputArea.d.ts +26 -0
  59. package/dist/src/chat-widget/components/VoiceInputArea.d.ts.map +1 -0
  60. package/dist/src/chat-widget/components/index.d.ts +16 -0
  61. package/dist/src/chat-widget/components/index.d.ts.map +1 -0
  62. package/dist/src/chat-widget/hooks/useAnalytics.d.ts +19 -0
  63. package/dist/src/chat-widget/hooks/useAnalytics.d.ts.map +1 -0
  64. package/dist/src/chat-widget/hooks/useChatSocket.d.ts +30 -0
  65. package/dist/src/chat-widget/hooks/useChatSocket.d.ts.map +1 -0
  66. package/dist/src/chat-widget/hooks/useChatState.d.ts +23 -0
  67. package/dist/src/chat-widget/hooks/useChatState.d.ts.map +1 -0
  68. package/dist/src/chat-widget/hooks/useChatWidget.d.ts +48 -0
  69. package/dist/src/chat-widget/hooks/useChatWidget.d.ts.map +1 -0
  70. package/dist/src/chat-widget/hooks/useDarkMode.d.ts +6 -0
  71. package/dist/src/chat-widget/hooks/useDarkMode.d.ts.map +1 -0
  72. package/dist/src/chat-widget/hooks/useDynamicHeight.d.ts +10 -0
  73. package/dist/src/chat-widget/hooks/useDynamicHeight.d.ts.map +1 -0
  74. package/dist/src/chat-widget/hooks/useFocusTrap.d.ts +34 -0
  75. package/dist/src/chat-widget/hooks/useFocusTrap.d.ts.map +1 -0
  76. package/dist/src/chat-widget/hooks/useHighContrast.d.ts +6 -0
  77. package/dist/src/chat-widget/hooks/useHighContrast.d.ts.map +1 -0
  78. package/dist/src/chat-widget/hooks/useIsMobile.d.ts +2 -0
  79. package/dist/src/chat-widget/hooks/useIsMobile.d.ts.map +1 -0
  80. package/dist/src/chat-widget/hooks/useNotifications.d.ts +23 -0
  81. package/dist/src/chat-widget/hooks/useNotifications.d.ts.map +1 -0
  82. package/dist/src/chat-widget/hooks/useRateLimit.d.ts +15 -0
  83. package/dist/src/chat-widget/hooks/useRateLimit.d.ts.map +1 -0
  84. package/dist/src/chat-widget/hooks/useSEOMetadata.d.ts +10 -0
  85. package/dist/src/chat-widget/hooks/useSEOMetadata.d.ts.map +1 -0
  86. package/dist/src/chat-widget/hooks/useWidgetTheme.d.ts +12 -0
  87. package/dist/src/chat-widget/hooks/useWidgetTheme.d.ts.map +1 -0
  88. package/dist/src/chat-widget/i18n/LanguageContext.d.ts +33 -0
  89. package/dist/src/chat-widget/i18n/LanguageContext.d.ts.map +1 -0
  90. package/dist/src/chat-widget/i18n/index.d.ts +8 -0
  91. package/dist/src/chat-widget/i18n/index.d.ts.map +1 -0
  92. package/dist/src/chat-widget/i18n/translations.d.ts +177 -0
  93. package/dist/src/chat-widget/i18n/translations.d.ts.map +1 -0
  94. package/dist/src/chat-widget/i18n/useTranslations.d.ts +27 -0
  95. package/dist/src/chat-widget/i18n/useTranslations.d.ts.map +1 -0
  96. package/dist/src/chat-widget/index.d.ts +11 -0
  97. package/dist/src/chat-widget/index.d.ts.map +1 -0
  98. package/dist/src/chat-widget/types/index.d.ts +268 -0
  99. package/dist/src/chat-widget/types/index.d.ts.map +1 -0
  100. package/dist/src/chat-widget/types/socket.d.ts +101 -0
  101. package/dist/src/chat-widget/types/socket.d.ts.map +1 -0
  102. package/dist/src/chat-widget/utils/dateUtils.d.ts +33 -0
  103. package/dist/src/chat-widget/utils/dateUtils.d.ts.map +1 -0
  104. package/dist/src/chat-widget/utils/defaultAssets.d.ts +20 -0
  105. package/dist/src/chat-widget/utils/defaultAssets.d.ts.map +1 -0
  106. package/dist/src/chat-widget/utils/deviceId.d.ts +18 -0
  107. package/dist/src/chat-widget/utils/deviceId.d.ts.map +1 -0
  108. package/dist/src/chat-widget/utils/fileValidation.d.ts +75 -0
  109. package/dist/src/chat-widget/utils/fileValidation.d.ts.map +1 -0
  110. package/dist/src/chat-widget/utils/logger.d.ts +31 -0
  111. package/dist/src/chat-widget/utils/logger.d.ts.map +1 -0
  112. package/dist/src/chat-widget/utils/performance.d.ts +50 -0
  113. package/dist/src/chat-widget/utils/performance.d.ts.map +1 -0
  114. package/dist/src/chat-widget/utils/storage.d.ts +24 -0
  115. package/dist/src/chat-widget/utils/storage.d.ts.map +1 -0
  116. package/dist/src/chat-widget/utils/theme.d.ts +122 -0
  117. package/dist/src/chat-widget/utils/theme.d.ts.map +1 -0
  118. package/dist/src/chat-widget/utils/theme.examples.d.ts +47 -0
  119. package/dist/src/chat-widget/utils/theme.examples.d.ts.map +1 -0
  120. package/dist/src/chat-widget/utils/themes/index.d.ts +12 -0
  121. package/dist/src/chat-widget/utils/themes/index.d.ts.map +1 -0
  122. package/dist/src/chat-widget/voice/components/CallButton.d.ts +12 -0
  123. package/dist/src/chat-widget/voice/components/CallButton.d.ts.map +1 -0
  124. package/dist/src/chat-widget/voice/components/LiveCallOverlay.d.ts +12 -0
  125. package/dist/src/chat-widget/voice/components/LiveCallOverlay.d.ts.map +1 -0
  126. package/dist/src/chat-widget/voice/components/VoiceButton.d.ts +13 -0
  127. package/dist/src/chat-widget/voice/components/VoiceButton.d.ts.map +1 -0
  128. package/dist/src/chat-widget/voice/components/VoiceChatOverlay.d.ts +12 -0
  129. package/dist/src/chat-widget/voice/components/VoiceChatOverlay.d.ts.map +1 -0
  130. package/dist/src/chat-widget/voice/components/WaveformVisualizer.d.ts +12 -0
  131. package/dist/src/chat-widget/voice/components/WaveformVisualizer.d.ts.map +1 -0
  132. package/dist/src/chat-widget/voice/components/index.d.ts +10 -0
  133. package/dist/src/chat-widget/voice/components/index.d.ts.map +1 -0
  134. package/dist/src/chat-widget/voice/index.d.ts +11 -0
  135. package/dist/src/chat-widget/voice/index.d.ts.map +1 -0
  136. package/dist/src/chat-widget/voice/types.d.ts +232 -0
  137. package/dist/src/chat-widget/voice/types.d.ts.map +1 -0
  138. package/dist/src/chat-widget/voice/useLiveCall.d.ts +13 -0
  139. package/dist/src/chat-widget/voice/useLiveCall.d.ts.map +1 -0
  140. package/dist/src/chat-widget/voice/useVoiceChat.d.ts +13 -0
  141. package/dist/src/chat-widget/voice/useVoiceChat.d.ts.map +1 -0
  142. package/dist/src/chat-widget/voice/useVoiceState.d.ts +38 -0
  143. package/dist/src/chat-widget/voice/useVoiceState.d.ts.map +1 -0
  144. package/dist/src/lib/utils.d.ts +3 -0
  145. package/dist/src/lib/utils.d.ts.map +1 -0
  146. package/dist/standalone.d.ts +95 -0
  147. package/dist/standalone.d.ts.map +1 -0
  148. package/dist/stats.html +1 -1
  149. 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,6 @@
1
+ /**
2
+ * @package @botuyo/chat-widget
3
+ * Hook para detectar y soportar modo de alto contraste (WCAG AAA)
4
+ */
5
+ export declare function useHighContrast(): boolean;
6
+ //# sourceMappingURL=useHighContrast.d.ts.map
@@ -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,2 @@
1
+ export declare function useIsMobile(breakpoint?: number): boolean;
2
+ //# sourceMappingURL=useIsMobile.d.ts.map
@@ -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"}