@v-tilt/browser 1.2.0 → 1.4.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.
Files changed (61) hide show
  1. package/dist/all-external-dependencies.js +2 -0
  2. package/dist/all-external-dependencies.js.map +1 -0
  3. package/dist/array.full.js +2 -0
  4. package/dist/array.full.js.map +1 -0
  5. package/dist/array.js +1 -1
  6. package/dist/array.js.map +1 -1
  7. package/dist/array.no-external.js +1 -1
  8. package/dist/array.no-external.js.map +1 -1
  9. package/dist/chat.js +2 -0
  10. package/dist/chat.js.map +1 -0
  11. package/dist/entrypoints/all-external-dependencies.d.ts +8 -0
  12. package/dist/entrypoints/array.full.d.ts +17 -0
  13. package/dist/entrypoints/chat.d.ts +22 -0
  14. package/dist/entrypoints/web-vitals.d.ts +14 -0
  15. package/dist/extensions/chat/chat-wrapper.d.ts +172 -0
  16. package/dist/extensions/chat/chat.d.ts +87 -0
  17. package/dist/extensions/chat/index.d.ts +10 -0
  18. package/dist/extensions/chat/types.d.ts +156 -0
  19. package/dist/external-scripts-loader.js +1 -1
  20. package/dist/external-scripts-loader.js.map +1 -1
  21. package/dist/main.js +1 -1
  22. package/dist/main.js.map +1 -1
  23. package/dist/module.d.ts +312 -5
  24. package/dist/module.js +1 -1
  25. package/dist/module.js.map +1 -1
  26. package/dist/module.no-external.d.ts +312 -5
  27. package/dist/module.no-external.js +1 -1
  28. package/dist/module.no-external.js.map +1 -1
  29. package/dist/recorder.js.map +1 -1
  30. package/dist/types.d.ts +59 -2
  31. package/dist/utils/globals.d.ts +138 -1
  32. package/dist/vtilt.d.ts +11 -1
  33. package/dist/web-vitals.d.ts +89 -5
  34. package/dist/web-vitals.js +2 -0
  35. package/dist/web-vitals.js.map +1 -0
  36. package/lib/config.js +5 -3
  37. package/lib/entrypoints/all-external-dependencies.d.ts +8 -0
  38. package/lib/entrypoints/all-external-dependencies.js +10 -0
  39. package/lib/entrypoints/array.full.d.ts +17 -0
  40. package/lib/entrypoints/array.full.js +19 -0
  41. package/lib/entrypoints/chat.d.ts +22 -0
  42. package/lib/entrypoints/chat.js +32 -0
  43. package/lib/entrypoints/external-scripts-loader.js +1 -1
  44. package/lib/entrypoints/web-vitals.d.ts +14 -0
  45. package/lib/entrypoints/web-vitals.js +29 -0
  46. package/lib/extensions/chat/chat-wrapper.d.ts +172 -0
  47. package/lib/extensions/chat/chat-wrapper.js +497 -0
  48. package/lib/extensions/chat/chat.d.ts +87 -0
  49. package/lib/extensions/chat/chat.js +998 -0
  50. package/lib/extensions/chat/index.d.ts +10 -0
  51. package/lib/extensions/chat/index.js +27 -0
  52. package/lib/extensions/chat/types.d.ts +156 -0
  53. package/lib/extensions/chat/types.js +22 -0
  54. package/lib/types.d.ts +59 -2
  55. package/lib/types.js +16 -0
  56. package/lib/utils/globals.d.ts +138 -1
  57. package/lib/vtilt.d.ts +11 -1
  58. package/lib/vtilt.js +42 -1
  59. package/lib/web-vitals.d.ts +89 -5
  60. package/lib/web-vitals.js +354 -46
  61. package/package.json +66 -65
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Lazy Loaded Chat Implementation
3
+ *
4
+ * The actual chat widget implementation that is loaded on demand.
5
+ * This file is bundled into chat.js and loaded when chat is enabled.
6
+ *
7
+ * Uses Ably for real-time messaging.
8
+ */
9
+ import type { VTilt } from "../../vtilt";
10
+ import type { ChatConfig, ChatChannel, LazyLoadedChatInterface } from "../../utils/globals";
11
+ import type { MessageCallback, TypingCallback, ConnectionCallback, Unsubscribe } from "./types";
12
+ export declare class LazyLoadedChat implements LazyLoadedChatInterface {
13
+ private _instance;
14
+ private _config;
15
+ private _state;
16
+ private _container;
17
+ private _widget;
18
+ private _bubble;
19
+ private _ably;
20
+ private _ablyChannel;
21
+ private _typingChannel;
22
+ private _connectionState;
23
+ private _messageCallbacks;
24
+ private _typingCallbacks;
25
+ private _connectionCallbacks;
26
+ private _typingTimeout;
27
+ private _typingDebounce;
28
+ private _isUserTyping;
29
+ private _initialUserReadAt;
30
+ private _isMarkingRead;
31
+ constructor(instance: VTilt, config?: ChatConfig);
32
+ get isOpen(): boolean;
33
+ get isConnected(): boolean;
34
+ get isLoading(): boolean;
35
+ get unreadCount(): number;
36
+ get channel(): ChatChannel | null;
37
+ open(): void;
38
+ close(): void;
39
+ toggle(): void;
40
+ show(): void;
41
+ hide(): void;
42
+ sendMessage(content: string): Promise<void>;
43
+ markAsRead(): void;
44
+ /**
45
+ * Automatically mark unread agent/AI messages as read
46
+ * Called when widget opens or new messages arrive while open
47
+ */
48
+ private _autoMarkAsRead;
49
+ /**
50
+ * Check if a message has been read by the user (using initial cursor)
51
+ */
52
+ private _isMessageReadByUser;
53
+ onMessage(callback: MessageCallback): Unsubscribe;
54
+ onTyping(callback: TypingCallback): Unsubscribe;
55
+ onConnectionChange(callback: ConnectionCallback): Unsubscribe;
56
+ destroy(): void;
57
+ private _initializeChannel;
58
+ private _connectRealtime;
59
+ private _disconnectRealtime;
60
+ private _extractProjectId;
61
+ private _handleNewMessage;
62
+ private _handleTypingEvent;
63
+ private _handleReadCursorEvent;
64
+ private _notifyConnectionChange;
65
+ private _createUI;
66
+ private _attachEventListeners;
67
+ private _handleUserTyping;
68
+ private _sendTypingIndicator;
69
+ private _handleSend;
70
+ private _updateUI;
71
+ private _renderMessages;
72
+ private _getContainerStyles;
73
+ private _getBubbleStyles;
74
+ private _getBubbleHTML;
75
+ private _getWidgetStyles;
76
+ private _getWidgetHTML;
77
+ private _getMessageHTML;
78
+ /**
79
+ * Check if a message has been read by the agent using cursor comparison
80
+ */
81
+ private _isMessageReadByAgent;
82
+ private _apiRequest;
83
+ private _trackEvent;
84
+ private _getTimeOpen;
85
+ private _escapeHTML;
86
+ private _formatTime;
87
+ }