@cossistant/next 0.0.26 → 0.0.28

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 (96) hide show
  1. package/conversation-timeline.d.ts.map +1 -1
  2. package/conversation.d.ts +2 -0
  3. package/conversation.d.ts.map +1 -1
  4. package/events.d.ts +32 -0
  5. package/events.d.ts.map +1 -0
  6. package/handle.d.ts +63 -0
  7. package/handle.d.ts.map +1 -0
  8. package/identify-visitor2.d.ts +1 -0
  9. package/identify-visitor2.d.ts.map +1 -1
  10. package/index.d.ts +7 -4
  11. package/index.js +3 -3
  12. package/index2.d.ts +1 -0
  13. package/index2.parts.d.ts +2 -1
  14. package/index4.d.ts +2 -1
  15. package/index7.d.ts +1 -70
  16. package/index8.d.ts +239 -3
  17. package/index8.d.ts.map +1 -0
  18. package/index9.d.ts +4 -0
  19. package/keys.d.ts +2 -0
  20. package/keys.d.ts.map +1 -1
  21. package/merge-refs.d.ts +1 -0
  22. package/package.json +2 -2
  23. package/primitives/index.d.ts +3 -2
  24. package/primitives/index.js +2 -2
  25. package/provider2.d.ts +2 -0
  26. package/provider2.d.ts.map +1 -1
  27. package/router.d.ts +1 -0
  28. package/router.d.ts.map +1 -1
  29. package/router2.d.ts +20 -3
  30. package/router2.d.ts.map +1 -1
  31. package/seen-store.d.ts +2 -0
  32. package/seen-store.d.ts.map +1 -1
  33. package/slots.d.ts +18 -0
  34. package/slots.d.ts.map +1 -0
  35. package/support/index.d.ts +5 -3
  36. package/support/index.js +2 -2
  37. package/support-config2.d.ts +1 -0
  38. package/support-config2.d.ts.map +1 -1
  39. package/support-store.d.ts +42 -14
  40. package/support-store.d.ts.map +1 -1
  41. package/support.css +2 -2
  42. package/timeline-item-attachments.d.ts +65 -0
  43. package/timeline-item-attachments.d.ts.map +1 -0
  44. package/timeline-item-group.d.ts +1 -0
  45. package/timeline-item-group.d.ts.map +1 -1
  46. package/trigger.d.ts +91 -0
  47. package/trigger.d.ts.map +1 -0
  48. package/types.d.ts +75 -12
  49. package/types.d.ts.map +1 -1
  50. package/typing-indicator.d.ts +1 -0
  51. package/typing-indicator.d.ts.map +1 -1
  52. package/typing-store.d.ts +2 -0
  53. package/typing-store.d.ts.map +1 -1
  54. package/typing.d.ts +4 -1
  55. package/typing.d.ts.map +1 -1
  56. package/use-client-query.d.ts +8 -0
  57. package/use-client-query.d.ts.map +1 -1
  58. package/use-conversation-auto-seen.d.ts +2 -1
  59. package/use-conversation-auto-seen.d.ts.map +1 -1
  60. package/use-conversation-history-page.d.ts +2 -0
  61. package/use-conversation-history-page.d.ts.map +1 -1
  62. package/use-conversation-page.d.ts +1 -0
  63. package/use-conversation-page.d.ts.map +1 -1
  64. package/use-conversation-preview.d.ts +3 -1
  65. package/use-conversation-preview.d.ts.map +1 -1
  66. package/use-conversation-timeline-items.d.ts +2 -1
  67. package/use-conversation-timeline-items.d.ts.map +1 -1
  68. package/use-conversation-typing.d.ts +2 -0
  69. package/use-conversation-typing.d.ts.map +1 -1
  70. package/use-conversations.d.ts +2 -1
  71. package/use-conversations.d.ts.map +1 -1
  72. package/use-create-conversation.d.ts +2 -0
  73. package/use-create-conversation.d.ts.map +1 -1
  74. package/use-file-upload.d.ts +1 -0
  75. package/use-grouped-messages.d.ts +2 -1
  76. package/use-grouped-messages.d.ts.map +1 -1
  77. package/use-home-page.d.ts +2 -0
  78. package/use-home-page.d.ts.map +1 -1
  79. package/use-message-composer.d.ts +11 -0
  80. package/use-message-composer.d.ts.map +1 -1
  81. package/use-multimodal-input.d.ts.map +1 -1
  82. package/use-render-element.d.ts.map +1 -1
  83. package/use-rest-client.d.ts +2 -0
  84. package/use-rest-client.d.ts.map +1 -1
  85. package/use-send-message.d.ts +3 -1
  86. package/use-send-message.d.ts.map +1 -1
  87. package/use-visitor.d.ts +2 -0
  88. package/use-visitor.d.ts.map +1 -1
  89. package/utils/index.d.ts +1 -1
  90. package/websocket.d.ts +1 -0
  91. package/websocket.d.ts.map +1 -1
  92. package/window.d.ts +12 -1
  93. package/window.d.ts.map +1 -1
  94. package/bubble.d.ts +0 -29
  95. package/bubble.d.ts.map +0 -1
  96. package/index7.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-timeline.d.ts","names":[],"sources":["../../react/src/primitives/conversation-timeline.tsx"],"sourcesContent":[],"mappings":";;;;;AASA;AA6CA;;AAAiC,KA7CrB,+BAAA,GA6CqB;EAAA,SAAA,EAAA,MAAA;EAjC7B,SAAM,CAAA,EAAA,OAAA;EACG,OAAA,CAAA,EAAA,OAAA;EAAoC,OAAM,EAAA,OAAA;CAG9C;;;AAsOT;;AAAwC,cAzM3B,oBAyM2B,EAzMP,OAAA,CAAA,yBAyMO,CAzMP,IAyMO,CAzMP,OAAA,CAAA,cAyMO,CAzMP,cAyMO,CAAA,EAAA,UAAA,CAAA,GAAA;EAAA,QAAA,CAAA,EA1OpC,OAAA,CAAM,SA0O8B,GAAA,CAAA,CAAA,KAAA,EAzO3B,+BAyO2B,EAAA,GAzOS,OAAA,CAAM,SAyOf,CAAA;EAT5B,OAAM,CAAA,EAAA,OAAA;;UA7NT;EAsO+B,SAAA,CAAA,EAAA,OAAA;EAAA,OAAA,CAAA,EAAA,OAAA;EAwC3B,UAAA,CAAA,EAAA,OAAA;EAAyB,WAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,aAAA,CAAA,EAAA,GAAA,GAAA,IAAA;CAAA,wBAAA,eAAA,CAAA,CAAA;;;;;cA9EzB,+BAA6B,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAT9B,OAAA,CAAM;;;;;;;;cA+CL,6BAA2B,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAT5B,OAAA,CAAM;;;;;;;;cAiDL,2BAAyB,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAT1B,OAAA,CAAM"}
1
+ {"version":3,"file":"conversation-timeline.d.ts","names":[],"sources":["../../react/src/primitives/conversation-timeline.tsx"],"sourcesContent":[],"mappings":";;;;;AASA;AA+CA;;AAAiC,KA/CrB,+BAAA,GA+CqB;EAAA,SAAA,EAAA,MAAA;EAnC7B,SAAM,CAAA,EAAA,OAAA;EACG,OAAA,CAAA,EAAA,OAAA;EAAoC,OAAM,EAAA,OAAA;CAG9C;;;AA+OT;;AAAwC,cAhN3B,oBAgN2B,EAhNP,OAAA,CAAA,yBAgNO,CAhNP,IAgNO,CAhNP,OAAA,CAAA,cAgNO,CAhNP,cAgNO,CAAA,EAAA,UAAA,CAAA,GAAA;EAAA,QAAA,CAAA,EAnPpC,OAAA,CAAM,SAmP8B,GAAA,CAAA,CAAA,KAAA,EAlP3B,+BAkP2B,EAAA,GAlPS,OAAA,CAAM,SAkPf,CAAA;EAT5B,OAAM,CAAA,EAAA,OAAA;;UAtOT;EA+O+B,SAAA,CAAA,EAAA,OAAA;EAAA,OAAA,CAAA,EAAA,OAAA;EAwC3B,UAAA,CAAA,EAAA,OAAA;EAAyB,WAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,aAAA,CAAA,EAAA,GAAA,GAAA,IAAA;CAAA,wBAAA,eAAA,CAAA,CAAA;;;;;cA9EzB,+BAA6B,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAT9B,OAAA,CAAM;;;;;;;;cA+CL,6BAA2B,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAT5B,OAAA,CAAM;;;;;;;;cAiDL,2BAAyB,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAT1B,OAAA,CAAM"}
package/conversation.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { Conversation } from "@cossistant/types";
2
+
1
3
  //#region ../react/src/utils/conversation.d.ts
2
4
  declare function shouldDisplayConversation(conversation: Conversation): boolean;
3
5
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","names":[],"sources":["../../react/src/utils/conversation.ts"],"sourcesContent":[],"mappings":";AAmBgB,iBAAA,yBAAA,CAAwC,YAAY,EAAZ,YAAY,CAAA,EAAA,OAAA"}
1
+ {"version":3,"file":"conversation.d.ts","names":[],"sources":["../../react/src/utils/conversation.ts"],"sourcesContent":[],"mappings":";;;iBAmBgB,yBAAA,eAAwC"}
package/events.d.ts ADDED
@@ -0,0 +1,32 @@
1
+ import { Conversation } from "@cossistant/types";
2
+ import "react";
3
+
4
+ //#region ../react/src/support/context/events.d.ts
5
+ type ConversationStartEvent = {
6
+ type: "conversationStart";
7
+ conversationId: string;
8
+ conversation?: Conversation;
9
+ };
10
+ type ConversationEndEvent = {
11
+ type: "conversationEnd";
12
+ conversationId: string;
13
+ conversation?: Conversation;
14
+ };
15
+ type MessageSentEvent = {
16
+ type: "messageSent";
17
+ conversationId: string;
18
+ message: TimelineItem;
19
+ };
20
+ type MessageReceivedEvent = {
21
+ type: "messageReceived";
22
+ conversationId: string;
23
+ message: TimelineItem;
24
+ };
25
+ type ErrorEvent = {
26
+ type: "error";
27
+ error: Error;
28
+ context?: string;
29
+ };
30
+ //#endregion
31
+ export { ConversationEndEvent, ConversationStartEvent, ErrorEvent, MessageReceivedEvent, MessageSentEvent };
32
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","names":[],"sources":["../../react/src/support/context/events.tsx"],"sourcesContent":[],"mappings":";;;;AAiBY,KAAA,sBAAA,GAAsB;EAMtB,IAAA,EAAA,mBAAoB;EAMpB,cAAA,EAAA,MAAgB;EAMhB,YAAA,CAAA,EAfI,YAegB;AAMhC,CAAA;KAlBY,oBAAA;;;iBAGI;;KAGJ,gBAAA;;;WAGF;;KAGE,oBAAA;;;WAGF;;KAGE,UAAA;;SAEJ"}
package/handle.d.ts ADDED
@@ -0,0 +1,63 @@
1
+ import { RouteRegistry } from "@cossistant/core";
2
+ import "react";
3
+
4
+ //#region ../react/src/support/context/handle.d.ts
5
+
6
+ /**
7
+ * Imperative handle for programmatic control of the Support widget.
8
+ * Access via ref on the Support component or via useSupportHandle hook.
9
+ *
10
+ * @example
11
+ * const supportRef = useRef<SupportHandle>(null);
12
+ *
13
+ * // Open the widget
14
+ * supportRef.current?.open();
15
+ *
16
+ * // Navigate to a conversation
17
+ * supportRef.current?.openConversation("conv_123");
18
+ *
19
+ * // Start a new conversation with a message
20
+ * supportRef.current?.startConversation("I need help with...");
21
+ *
22
+ * <Support ref={supportRef} />
23
+ */
24
+ type SupportHandle = {
25
+ /**
26
+ * Open the support widget.
27
+ */
28
+ open: () => void;
29
+ /**
30
+ * Close the support widget.
31
+ */
32
+ close: () => void;
33
+ /**
34
+ * Toggle the support widget open/closed.
35
+ */
36
+ toggle: () => void;
37
+ /**
38
+ * Navigate to a specific page with optional params.
39
+ */
40
+ navigate: <K extends keyof RouteRegistry>(options: {
41
+ page: K;
42
+ params?: RouteRegistry[K];
43
+ }) => void;
44
+ /**
45
+ * Go back to the previous page.
46
+ */
47
+ goBack: () => void;
48
+ /**
49
+ * Open a specific conversation.
50
+ */
51
+ openConversation: (conversationId: string) => void;
52
+ /**
53
+ * Start a new conversation, optionally with an initial message.
54
+ */
55
+ startConversation: (initialMessage?: string) => void;
56
+ /**
57
+ * Navigate to the home page.
58
+ */
59
+ goHome: () => void;
60
+ };
61
+ //#endregion
62
+ export { SupportHandle };
63
+ //# sourceMappingURL=handle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle.d.ts","names":[],"sources":["../../react/src/support/context/handle.tsx"],"sourcesContent":[],"mappings":";;;;;;;AA6BA;;;;;;;;;;;;;;;;KAAY,aAAA;;;;;;;;;;;;;;;;6BAgBgB;UACpB;aACG,cAAc"}
@@ -1,3 +1,4 @@
1
+ import { VisitorMetadata } from "@cossistant/types";
1
2
  import { ReactElement } from "react";
2
3
 
3
4
  //#region ../react/src/identify-visitor.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"identify-visitor2.d.ts","names":[],"sources":["../../react/src/identify-visitor.tsx"],"sourcesContent":[],"mappings":";;;AAOY,KAAA,2BAAA,GAA2B;EAW1B,UAAA,CAAA,EAAA,MAAA;;;;aAND;;;;;cAMC;;;;;;;KAMV,8BAA8B"}
1
+ {"version":3,"file":"identify-visitor2.d.ts","names":[],"sources":["../../react/src/identify-visitor.tsx"],"sourcesContent":[],"mappings":";;;;KAOY,2BAAA;EAAA,UAAA,CAAA,EAAA,MAAA;EAWC,KAAA,CAAA,EAAA,MAAA;;;aAND;;;;;AAYiC,cANhC,sBAMgC,EAAA;;;;;;;KAA1C,8BAA8B"}
package/index.d.ts CHANGED
@@ -34,13 +34,14 @@ import { SupportConfig, SupportConfigProps } from "./support-config2.js";
34
34
  import { Avatar } from "./avatar.js";
35
35
  import { AvatarFallback } from "./fallback.js";
36
36
  import { AvatarImage } from "./image.js";
37
- import { SupportBubble } from "./bubble.js";
38
37
  import { Button } from "./button.js";
39
38
  import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "./conversation-timeline.js";
40
39
  import { FileInput, MultimodalInput, SupportInput } from "./multimodal-input.js";
41
40
  import { PageDefinition, Router, RouterProps } from "./router.js";
42
41
  import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "./timeline-item.js";
42
+ import { TimelineItemAttachments, TimelineItemFiles, TimelineItemImages, extractFileParts, extractImageParts, hasAttachments } from "./timeline-item-attachments.js";
43
43
  import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "./timeline-item-group.js";
44
+ import { SupportTrigger, TriggerProps, TriggerRenderProps } from "./trigger.js";
44
45
  import { SupportWindow } from "./window.js";
45
46
  import "./primitives/index.js";
46
47
  import { CossistantContextValue, CossistantProviderProps, SupportContext, SupportProvider, SupportProviderProps, UseSupportValue, useSupport } from "./provider2.js";
@@ -51,13 +52,15 @@ import { SupportRealtimeProvider } from "./support-provider.js";
51
52
  import { applyConversationTypingEvent, clearTypingFromTimelineItem, clearTypingState, setTypingState } from "./typing-store.js";
52
53
  import { RealtimeEventHandler, RealtimeEventHandlerEntry, RealtimeEventHandlersMap, RealtimeEventMeta, useRealtime } from "./use-realtime.js";
53
54
  import "./realtime/index.js";
55
+ import { CustomPage } from "./router2.js";
56
+ import { Align, ContentProps, RootProps, Side } from "./types.js";
54
57
  import { WebSocketContextValue, WebSocketProvider, useWebSocket } from "./websocket.js";
55
- import { useSupportConfig, useSupportStore } from "./support-store.js";
56
- import { Support, SupportProps } from "./index7.js";
58
+ import { useSupportConfig, useSupportNavigation, useSupportStore } from "./support-store.js";
59
+ import { Support, SupportProps } from "./index8.js";
57
60
  import "./support/index.js";
58
61
  import "./support-config.js";
59
62
  import { shouldDisplayConversation } from "./conversation.js";
60
63
  import { PENDING_CONVERSATION_ID, generateShortPrimaryId } from "./id.js";
61
64
  import { useRenderElement } from "./use-render-element.js";
62
65
  import "./utils/index.js";
63
- export { Avatar, AvatarFallback, AvatarImage, SupportBubble as Bubble, Button, CONVERSATION_AUTO_SEEN_DELAY_MS, SupportConfig as Config, ConversationItem, ConversationLifecycleState, ConversationPreviewAssignedAgent, ConversationPreviewLastMessage, ConversationPreviewTypingParticipant, ConversationPreviewTypingState, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, ConversationTimelineTypingParticipant, ConversationTypingParticipant, CossistantContextValue, CossistantProviderProps, CreateConversationVariables, FileInput, GroupedMessage, IdentifySupportVisitor, IdentifySupportVisitorProps, SupportInput as Input, MultimodalInput, PENDING_CONVERSATION_ID, PageDefinition, RealtimeAuthConfig, RealtimeContextValue, RealtimeEventHandler, RealtimeEventHandlerEntry, RealtimeEventHandlersMap, RealtimeEventMeta, RealtimeProvider, RealtimeProviderProps, Router, RouterProps, SendMessageOptions, SendMessageResult, Support, SupportConfig, SupportConfigProps, SupportContext, SupportProps, SupportProvider, SupportProviderProps, SupportRealtimeProvider, TimelineEventItem, TimelineItem, TimelineItemContent, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemTimestamp, TimelineToolItem, TypingIndicator, TypingIndicatorProps, TypingParticipant, TypingParticipantType, UseClientResult, UseComposerRefocusOptions, UseComposerRefocusReturn, UseConversationAutoSeenOptions, UseConversationHistoryPageOptions, UseConversationHistoryPageReturn, UseConversationLifecycleOptions, UseConversationLifecycleReturn, UseConversationOptions, UseConversationPageOptions, UseConversationPageReturn, UseConversationPreviewOptions, UseConversationPreviewReturn, UseConversationResult, UseConversationTimelineItemsOptions, UseConversationTimelineItemsResult, UseConversationTimelineOptions, UseConversationTimelineReturn, UseConversationsOptions, UseConversationsResult, UseCreateConversationOptions, UseCreateConversationResult, UseGroupedMessagesOptions, UseGroupedMessagesProps, UseHomePageOptions, UseHomePageReturn, UseMessageComposerOptions, UseMessageComposerReturn, UseMultimodalInputOptions, UseMultimodalInputReturn, UseRealtimeSupportOptions, UseRealtimeSupportResult, UseScrollMaskOptions, UseScrollMaskReturn, UseSendMessageOptions, UseSendMessageResult, UseSoundEffectOptions, UseSoundEffectReturn, UseSupportValue, UseVisitorReturn, WebSocketContextValue, WebSocketProvider, SupportWindow as Window, WindowVisibilityFocusState, applyConversationSeenEvent, applyConversationTypingEvent, clearTypingFromTimelineItem, clearTypingState, generateShortPrimaryId, hydrateConversationSeen, setTypingState, shouldDisplayConversation, upsertConversationSeen, useClient, useClientQuery, useComposerRefocus, useConversation, useConversationAutoSeen, useConversationHistoryPage, useConversationLifecycle, useConversationPage, useConversationPreview, useConversationSeen, useConversationTimeline, useConversationTimelineItems, useConversationTyping, useConversations, useCreateConversation, useDebouncedConversationSeen, useDefaultMessages, useGroupedMessages, useHomePage, useMessageComposer, useMultimodalInput, useNewMessageSound, useRealtime, useRealtimeConnection, useRealtimeSupport, useRenderElement, useScrollMask, useSendMessage, useSoundEffect, useSupport, useSupportConfig, useSupportStore, useTypingSound, useVisitor, useWebSocket, useWindowVisibilityFocus };
66
+ export { Align, Avatar, AvatarFallback, AvatarImage, Button, CONVERSATION_AUTO_SEEN_DELAY_MS, SupportConfig as Config, ContentProps, ConversationItem, ConversationLifecycleState, ConversationPreviewAssignedAgent, ConversationPreviewLastMessage, ConversationPreviewTypingParticipant, ConversationPreviewTypingState, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, ConversationTimelineTypingParticipant, ConversationTypingParticipant, CossistantContextValue, CossistantProviderProps, CreateConversationVariables, CustomPage, FileInput, GroupedMessage, IdentifySupportVisitor, IdentifySupportVisitorProps, SupportInput as Input, MultimodalInput, PENDING_CONVERSATION_ID, PageDefinition, RealtimeAuthConfig, RealtimeContextValue, RealtimeEventHandler, RealtimeEventHandlerEntry, RealtimeEventHandlersMap, RealtimeEventMeta, RealtimeProvider, RealtimeProviderProps, RootProps, Router, RouterProps, SendMessageOptions, SendMessageResult, Side, Support, SupportConfig, SupportConfigProps, SupportContext, SupportProps, SupportProvider, SupportProviderProps, SupportRealtimeProvider, TimelineEventItem, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, TimelineToolItem, SupportTrigger as Trigger, TriggerProps, TriggerRenderProps, TypingIndicator, TypingIndicatorProps, TypingParticipant, TypingParticipantType, UseClientResult, UseComposerRefocusOptions, UseComposerRefocusReturn, UseConversationAutoSeenOptions, UseConversationHistoryPageOptions, UseConversationHistoryPageReturn, UseConversationLifecycleOptions, UseConversationLifecycleReturn, UseConversationOptions, UseConversationPageOptions, UseConversationPageReturn, UseConversationPreviewOptions, UseConversationPreviewReturn, UseConversationResult, UseConversationTimelineItemsOptions, UseConversationTimelineItemsResult, UseConversationTimelineOptions, UseConversationTimelineReturn, UseConversationsOptions, UseConversationsResult, UseCreateConversationOptions, UseCreateConversationResult, UseGroupedMessagesOptions, UseGroupedMessagesProps, UseHomePageOptions, UseHomePageReturn, UseMessageComposerOptions, UseMessageComposerReturn, UseMultimodalInputOptions, UseMultimodalInputReturn, UseRealtimeSupportOptions, UseRealtimeSupportResult, UseScrollMaskOptions, UseScrollMaskReturn, UseSendMessageOptions, UseSendMessageResult, UseSoundEffectOptions, UseSoundEffectReturn, UseSupportValue, UseVisitorReturn, WebSocketContextValue, WebSocketProvider, SupportWindow as Window, WindowVisibilityFocusState, applyConversationSeenEvent, applyConversationTypingEvent, clearTypingFromTimelineItem, clearTypingState, extractFileParts, extractImageParts, generateShortPrimaryId, hasAttachments, hydrateConversationSeen, setTypingState, shouldDisplayConversation, upsertConversationSeen, useClient, useClientQuery, useComposerRefocus, useConversation, useConversationAutoSeen, useConversationHistoryPage, useConversationLifecycle, useConversationPage, useConversationPreview, useConversationSeen, useConversationTimeline, useConversationTimelineItems, useConversationTyping, useConversations, useCreateConversation, useDebouncedConversationSeen, useDefaultMessages, useGroupedMessages, useHomePage, useMessageComposer, useMultimodalInput, useNewMessageSound, useRealtime, useRealtimeConnection, useRealtimeSupport, useRenderElement, useScrollMask, useSendMessage, useSoundEffect, useSupport, useSupportConfig, useSupportNavigation, useSupportStore, useTypingSound, useVisitor, useWebSocket, useWindowVisibilityFocus };
package/index.js CHANGED
@@ -3,11 +3,11 @@
3
3
 
4
4
  import { IdentifySupportVisitor } from "./identify-visitor.js";
5
5
  import { CONVERSATION_AUTO_SEEN_DELAY_MS, useClient, useClientQuery, useComposerRefocus, useConversation, useConversationAutoSeen, useConversationHistoryPage, useConversationLifecycle, useConversationPage, useConversationPreview, useConversationSeen, useConversationTimeline, useConversationTimelineItems, useConversationTyping, useConversations, useCreateConversation, useDebouncedConversationSeen, useDefaultMessages, useGroupedMessages, useHomePage, useMessageComposer, useMultimodalInput, useNewMessageSound, useRealtimeSupport, useScrollMask, useSendMessage, useSoundEffect, useTypingSound, useVisitor, useWindowVisibilityFocus } from "./hooks/index.js";
6
- import { Avatar, AvatarFallback, AvatarImage, Bubble, Button, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemContent, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemTimestamp, TypingIndicator, Window } from "./primitives/index.js";
6
+ import { Avatar, AvatarFallback, AvatarImage, Button, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, Trigger, TypingIndicator, Window, extractFileParts, extractImageParts, hasAttachments } from "./primitives/index.js";
7
7
  import { SupportContext, SupportProvider, useSupport } from "./provider.js";
8
8
  import { RealtimeProvider, SupportRealtimeProvider, applyConversationSeenEvent, applyConversationTypingEvent, clearTypingFromTimelineItem, clearTypingState, hydrateConversationSeen, setTypingState, upsertConversationSeen, useRealtime, useRealtimeConnection } from "./realtime/index.js";
9
- import { Support, WebSocketProvider, useSupportConfig, useSupportStore, useWebSocket } from "./support/index.js";
9
+ import { Support, WebSocketProvider, useSupportConfig, useSupportNavigation, useSupportStore, useWebSocket } from "./support/index.js";
10
10
  import { SupportConfig } from "./support-config.js";
11
11
  import { PENDING_CONVERSATION_ID, generateShortPrimaryId, shouldDisplayConversation, useRenderElement } from "./utils/index.js";
12
12
 
13
- export { Avatar, AvatarFallback, AvatarImage, Bubble, Button, CONVERSATION_AUTO_SEEN_DELAY_MS, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, IdentifySupportVisitor, Input, MultimodalInput, PENDING_CONVERSATION_ID, RealtimeProvider, Router, Support, SupportConfig, SupportContext, SupportProvider, SupportRealtimeProvider, TimelineItem, TimelineItemContent, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemTimestamp, TypingIndicator, WebSocketProvider, Window, applyConversationSeenEvent, applyConversationTypingEvent, clearTypingFromTimelineItem, clearTypingState, generateShortPrimaryId, hydrateConversationSeen, setTypingState, shouldDisplayConversation, upsertConversationSeen, useClient, useClientQuery, useComposerRefocus, useConversation, useConversationAutoSeen, useConversationHistoryPage, useConversationLifecycle, useConversationPage, useConversationPreview, useConversationSeen, useConversationTimeline, useConversationTimelineItems, useConversationTyping, useConversations, useCreateConversation, useDebouncedConversationSeen, useDefaultMessages, useGroupedMessages, useHomePage, useMessageComposer, useMultimodalInput, useNewMessageSound, useRealtime, useRealtimeConnection, useRealtimeSupport, useRenderElement, useScrollMask, useSendMessage, useSoundEffect, useSupport, useSupportConfig, useSupportStore, useTypingSound, useVisitor, useWebSocket, useWindowVisibilityFocus };
13
+ export { Avatar, AvatarFallback, AvatarImage, Button, CONVERSATION_AUTO_SEEN_DELAY_MS, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, IdentifySupportVisitor, Input, MultimodalInput, PENDING_CONVERSATION_ID, RealtimeProvider, Router, Support, SupportConfig, SupportContext, SupportProvider, SupportRealtimeProvider, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, Trigger, TypingIndicator, WebSocketProvider, Window, applyConversationSeenEvent, applyConversationTypingEvent, clearTypingFromTimelineItem, clearTypingState, extractFileParts, extractImageParts, generateShortPrimaryId, hasAttachments, hydrateConversationSeen, setTypingState, shouldDisplayConversation, upsertConversationSeen, useClient, useClientQuery, useComposerRefocus, useConversation, useConversationAutoSeen, useConversationHistoryPage, useConversationLifecycle, useConversationPage, useConversationPreview, useConversationSeen, useConversationTimeline, useConversationTimelineItems, useConversationTyping, useConversations, useCreateConversation, useDebouncedConversationSeen, useDefaultMessages, useGroupedMessages, useHomePage, useMessageComposer, useMultimodalInput, useNewMessageSound, useRealtime, useRealtimeConnection, useRealtimeSupport, useRenderElement, useScrollMask, useSendMessage, useSoundEffect, useSupport, useSupportConfig, useSupportNavigation, useSupportStore, useTypingSound, useVisitor, useWebSocket, useWindowVisibilityFocus };
package/index2.d.ts CHANGED
@@ -16,6 +16,7 @@ import { ConversationTypingParticipant, useConversationTyping } from "./use-conv
16
16
  import { ConversationTimelineTypingParticipant, UseConversationTimelineOptions, UseConversationTimelineReturn, useConversationTimeline } from "./use-conversation-timeline.js";
17
17
  import { UseConversationsOptions, UseConversationsResult, useConversations } from "./use-conversations.js";
18
18
  import { CreateConversationVariables, UseCreateConversationOptions, UseCreateConversationResult, useCreateConversation } from "./use-create-conversation.js";
19
+ import "./use-file-upload.js";
19
20
  import { UseHomePageOptions, UseHomePageReturn, useHomePage } from "./use-home-page.js";
20
21
  import { UseMessageComposerOptions, UseMessageComposerReturn, useMessageComposer } from "./use-message-composer.js";
21
22
  import { useNewMessageSound } from "./use-new-message-sound.js";
package/index2.parts.d.ts CHANGED
@@ -4,11 +4,12 @@ import { Avatar } from "./avatar.js";
4
4
  import { AvatarFallback } from "./fallback.js";
5
5
  import { AvatarImage } from "./image.js";
6
6
  import "./index3.js";
7
- import { SupportBubble } from "./bubble.js";
8
7
  import { Button } from "./button.js";
9
8
  import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "./conversation-timeline.js";
10
9
  import { FileInput, MultimodalInput, SupportInput } from "./multimodal-input.js";
11
10
  import { PageDefinition, Router, RouterProps } from "./router.js";
12
11
  import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "./timeline-item.js";
12
+ import { TimelineItemAttachments, TimelineItemFiles, TimelineItemImages, extractFileParts, extractImageParts, hasAttachments } from "./timeline-item-attachments.js";
13
13
  import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "./timeline-item-group.js";
14
+ import { SupportTrigger, TriggerProps, TriggerRenderProps } from "./trigger.js";
14
15
  import { SupportWindow } from "./window.js";
package/index4.d.ts CHANGED
@@ -3,12 +3,13 @@ import { SupportConfig } from "./support-config2.js";
3
3
  import { Avatar } from "./avatar.js";
4
4
  import { AvatarFallback } from "./fallback.js";
5
5
  import { AvatarImage } from "./image.js";
6
- import { SupportBubble } from "./bubble.js";
7
6
  import { Button } from "./button.js";
8
7
  import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "./conversation-timeline.js";
9
8
  import { FileInput, MultimodalInput, SupportInput } from "./multimodal-input.js";
10
9
  import { PageDefinition, Router, RouterProps } from "./router.js";
11
10
  import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "./timeline-item.js";
11
+ import { TimelineItemAttachments, TimelineItemFiles, TimelineItemImages, extractFileParts, extractImageParts, hasAttachments } from "./timeline-item-attachments.js";
12
12
  import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "./timeline-item-group.js";
13
+ import { SupportTrigger, TriggerProps, TriggerRenderProps } from "./trigger.js";
13
14
  import { SupportWindow } from "./window.js";
14
15
  import "./index2.parts.js";
package/index7.d.ts CHANGED
@@ -1,70 +1 @@
1
- import { SupportLocale, SupportTextContentOverrides } from "./keys.js";
2
- import { CustomPage } from "./router2.js";
3
- import "./index6.js";
4
- import { BubbleSlotProps, ContainerSlotProps, RouterSlotProps } from "./types.js";
5
- import "./button2.js";
6
- import { WebSocketContextValue, WebSocketProvider, useWebSocket } from "./websocket.js";
7
- import { useSupportConfig, useSupportStore } from "./support-store.js";
8
- import React, { ReactElement } from "react";
9
-
10
- //#region ../react/src/support/index.d.ts
11
- type SupportProps<Locale extends string = SupportLocale> = {
12
- className?: string;
13
- position?: "top" | "bottom";
14
- align?: "right" | "left";
15
- positioning?: "fixed" | "absolute";
16
- quickOptions?: string[];
17
- defaultMessages?: DefaultMessage[];
18
- defaultOpen?: boolean;
19
- locale?: Locale;
20
- content?: SupportTextContentOverrides<Locale>;
21
- theme?: "light" | "dark";
22
- slots?: {
23
- bubble?: React.ComponentType<BubbleSlotProps>;
24
- container?: React.ComponentType<ContainerSlotProps>;
25
- router?: React.ComponentType<RouterSlotProps>;
26
- };
27
- classNames?: {
28
- root?: string;
29
- bubble?: string;
30
- container?: string;
31
- };
32
- customPages?: CustomPage[];
33
- children?: React.ReactNode;
34
- };
35
- /**
36
- * Complete support widget with chat, routing, and real-time features.
37
- *
38
- * @example
39
- * // Zero config
40
- * <Support />
41
- *
42
- * @example
43
- * // With customization and custom pages
44
- * <Support
45
- * theme="dark"
46
- * classNames={{ bubble: "bg-purple-600" }}
47
- * customPages={[
48
- * { name: "FAQ", component: FAQPage }
49
- * ]}
50
- * />
51
- */
52
- declare function Support<Locale extends string = SupportLocale>({
53
- className,
54
- position,
55
- align,
56
- positioning,
57
- quickOptions,
58
- defaultMessages,
59
- defaultOpen,
60
- locale,
61
- content,
62
- theme,
63
- slots,
64
- classNames,
65
- customPages,
66
- children
67
- }: SupportProps<Locale>): ReactElement | null;
68
- //#endregion
69
- export { Support, SupportProps };
70
- //# sourceMappingURL=index7.d.ts.map
1
+ import { UseSupportConfigResult, UseSupportStoreResult, useSupportConfig, useSupportNavigation, useSupportStore } from "./support-store.js";
package/index8.d.ts CHANGED
@@ -1,3 +1,239 @@
1
- import { shouldDisplayConversation } from "./conversation.js";
2
- import { PENDING_CONVERSATION_ID, generateShortPrimaryId } from "./id.js";
3
- import { useRenderElement } from "./use-render-element.js";
1
+ import { SupportLocale, SupportTextContentOverrides } from "./keys.js";
2
+ import { CustomPage, PageProps } from "./router2.js";
3
+ import { SlotProps } from "./slots.js";
4
+ import { ConversationEndEvent, ConversationStartEvent, ErrorEvent, MessageReceivedEvent, MessageSentEvent } from "./events.js";
5
+ import { SupportHandle } from "./handle.js";
6
+ import "./index6.js";
7
+ import { Align, CollisionPadding, ContentProps, RootProps, Side, TriggerRenderProps } from "./types.js";
8
+ import "./button2.js";
9
+ import { WebSocketContextValue, WebSocketProvider, useWebSocket } from "./websocket.js";
10
+ import { useSupportConfig, useSupportNavigation, useSupportStore } from "./support-store.js";
11
+ import "./index7.js";
12
+ import * as _cossistant_core0 from "@cossistant/core";
13
+ import { DefaultMessage } from "@cossistant/types";
14
+ import * as React$1 from "react";
15
+
16
+ //#region ../react/src/support/index.d.ts
17
+ type SupportProps<Locale extends string = SupportLocale> = {
18
+ /**
19
+ * Additional CSS classes for the root wrapper.
20
+ */
21
+ className?: string;
22
+ /**
23
+ * Which side of the trigger to place the content.
24
+ * @default "top"
25
+ */
26
+ side?: Side;
27
+ /**
28
+ * Alignment along the side axis.
29
+ * @default "end"
30
+ */
31
+ align?: Align;
32
+ /**
33
+ * Distance (in pixels) between the trigger and the content.
34
+ * @default 16
35
+ */
36
+ sideOffset?: number;
37
+ /**
38
+ * Enable automatic collision avoidance.
39
+ * When true, the content repositions to stay within the viewport.
40
+ * @default true
41
+ */
42
+ avoidCollisions?: boolean;
43
+ /**
44
+ * Padding from viewport edges when avoiding collisions.
45
+ * @default 8
46
+ */
47
+ collisionPadding?: CollisionPadding;
48
+ /**
49
+ * Granular className overrides for specific parts.
50
+ */
51
+ classNames?: {
52
+ trigger?: string;
53
+ content?: string;
54
+ };
55
+ /**
56
+ * Force a specific theme. Omit for automatic detection.
57
+ */
58
+ theme?: "light" | "dark";
59
+ /**
60
+ * Controlled open state.
61
+ * When provided, the widget operates in controlled mode.
62
+ * Use with `onOpenChange` to manage state externally.
63
+ */
64
+ open?: boolean;
65
+ /**
66
+ * Callback fired when the open state should change.
67
+ * Use with `open` prop for controlled mode.
68
+ *
69
+ * @example
70
+ * const [isOpen, setIsOpen] = useState(false);
71
+ * <Support open={isOpen} onOpenChange={setIsOpen} />
72
+ */
73
+ onOpenChange?: (open: boolean) => void;
74
+ /**
75
+ * Whether the widget should open automatically on mount (uncontrolled mode).
76
+ * Ignored when `open` prop is provided (controlled mode).
77
+ * @default false
78
+ */
79
+ defaultOpen?: boolean;
80
+ /**
81
+ * Quick reply options displayed to users.
82
+ */
83
+ quickOptions?: string[];
84
+ /**
85
+ * Custom welcome messages shown before a conversation starts.
86
+ */
87
+ defaultMessages?: DefaultMessage[];
88
+ /**
89
+ * Locale string for widget translations.
90
+ */
91
+ locale?: Locale;
92
+ /**
93
+ * Custom text content overrides for internationalization.
94
+ */
95
+ content?: SupportTextContentOverrides<Locale>;
96
+ /**
97
+ * Custom pages to add to the router.
98
+ */
99
+ customPages?: CustomPage[];
100
+ /**
101
+ * Called when a new conversation is started.
102
+ */
103
+ onConversationStart?: (event: ConversationStartEvent) => void;
104
+ /**
105
+ * Called when a conversation ends (resolved, closed, etc.).
106
+ */
107
+ onConversationEnd?: (event: ConversationEndEvent) => void;
108
+ /**
109
+ * Called when the visitor sends a message.
110
+ */
111
+ onMessageSent?: (event: MessageSentEvent) => void;
112
+ /**
113
+ * Called when a message is received from an agent (human or AI).
114
+ */
115
+ onMessageReceived?: (event: MessageReceivedEvent) => void;
116
+ /**
117
+ * Called when an error occurs within the widget.
118
+ */
119
+ onError?: (event: ErrorEvent) => void;
120
+ /**
121
+ * Children for composition. Can include:
122
+ * - <Support.Trigger> for custom trigger
123
+ * - <Support.Content> for custom content positioning
124
+ * - <Support.Page> components for custom routes
125
+ */
126
+ children?: React$1.ReactNode;
127
+ };
128
+ type SupportContentProps = {
129
+ className?: string;
130
+ /**
131
+ * Which side of the trigger to place the content.
132
+ * @default "top"
133
+ */
134
+ side?: Side;
135
+ /**
136
+ * Alignment along the side axis.
137
+ * @default "end"
138
+ */
139
+ align?: Align;
140
+ /**
141
+ * Distance (in pixels) between the trigger and the content.
142
+ * @default 16
143
+ */
144
+ sideOffset?: number;
145
+ /**
146
+ * Enable automatic collision avoidance.
147
+ * When true, the content repositions to stay within the viewport.
148
+ * @default true
149
+ */
150
+ avoidCollisions?: boolean;
151
+ /**
152
+ * Padding from viewport edges when avoiding collisions.
153
+ * @default 8
154
+ */
155
+ collisionPadding?: CollisionPadding;
156
+ children?: React$1.ReactNode;
157
+ };
158
+ type SupportRouterProps = {
159
+ /**
160
+ * Custom pages to add alongside built-in pages.
161
+ */
162
+ customPages?: CustomPage[];
163
+ /**
164
+ * Page components to register.
165
+ */
166
+ children?: React$1.ReactNode;
167
+ };
168
+ type SupportRootProps = {
169
+ /**
170
+ * Controlled open state.
171
+ * When provided, the widget operates in controlled mode.
172
+ */
173
+ open?: boolean;
174
+ /**
175
+ * Callback fired when the open state should change.
176
+ * Use with `open` prop for controlled mode.
177
+ */
178
+ onOpenChange?: (open: boolean) => void;
179
+ /**
180
+ * Whether the widget should open automatically (uncontrolled mode).
181
+ * Ignored when `open` prop is provided.
182
+ * @default false
183
+ */
184
+ defaultOpen?: boolean;
185
+ /**
186
+ * Force a specific theme.
187
+ */
188
+ theme?: "light" | "dark";
189
+ /**
190
+ * Additional CSS classes.
191
+ */
192
+ className?: string;
193
+ /**
194
+ * Called when a new conversation is started.
195
+ */
196
+ onConversationStart?: (event: ConversationStartEvent) => void;
197
+ /**
198
+ * Called when a conversation ends.
199
+ */
200
+ onConversationEnd?: (event: ConversationEndEvent) => void;
201
+ /**
202
+ * Called when the visitor sends a message.
203
+ */
204
+ onMessageSent?: (event: MessageSentEvent) => void;
205
+ /**
206
+ * Called when a message is received from an agent.
207
+ */
208
+ onMessageReceived?: (event: MessageReceivedEvent) => void;
209
+ /**
210
+ * Called when an error occurs.
211
+ */
212
+ onError?: (event: ErrorEvent) => void;
213
+ children: React$1.ReactNode;
214
+ };
215
+ declare const Support: (<Locale extends string = SupportLocale>(props: SupportProps<Locale> & {
216
+ ref?: React$1.Ref<SupportHandle>;
217
+ }) => React$1.ReactElement | null) & {
218
+ Root: React$1.ForwardRefExoticComponent<SupportRootProps & React$1.RefAttributes<SupportHandle>>;
219
+ Trigger: React$1.ForwardRefExoticComponent<Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
220
+ /**
221
+ * Content to render inside the trigger.
222
+ * Can be static content or a function receiving render props.
223
+ */
224
+ children?: React$1.ReactNode | ((props: TriggerRenderProps) => React$1.ReactNode);
225
+ /**
226
+ * When true, renders children directly with all props passed through.
227
+ */
228
+ asChild?: boolean;
229
+ className?: string;
230
+ } & React$1.RefAttributes<HTMLButtonElement>>;
231
+ Content: React$1.FC<SupportContentProps>;
232
+ Router: React$1.FC<SupportRouterProps>;
233
+ Page: <K extends keyof _cossistant_core0.RouteRegistry>(_props: PageProps<K>) => null;
234
+ Header: React$1.FC<SlotProps>;
235
+ Footer: React$1.FC<SlotProps>;
236
+ };
237
+ //#endregion
238
+ export { Support, SupportProps };
239
+ //# sourceMappingURL=index8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index8.d.ts","names":[],"sources":["../../react/src/support/index.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;KAsCY,qCAAqC;;;;;;;;AAAjD;EAAiD,IAAA,CAAA,EAUzC,IAVyC;EAUzC;;;;EA6EE,KAAA,CAAA,EAvED,KAuEC;EAK6B;;;;EAmBV,UAAA,CAAA,EAAA,MAAA;EAKJ;;;;;EA6Qb,eAAA,CAAA,EAAA,OAAmB;EAMvB;;;;EAsBmB,gBAAA,CAAA,EA1XP,gBA0XO;EA2Cf;AAkEZ;;EAgC6B,UAAA,CAAA,EAAA;IAIJ,OAAA,CAAA,EAAA,MAAA;IAII,OAAA,CAAA,EAAA,MAAA;EAIV,CAAA;EACR;;AA2FX;EAxUsB,KAAA,CAAA,EAAA,OAAA,GAAA,MAAA;EAED;;;;;;;;;;;;;;EAeyC,YAAM,CAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,GAAA,IAAA;;;;;;;;;;;;;;oBAzQjD;;;;WAKT;;;;YAKC,4BAA4B;;;;gBAKxB;;;;gCASgB;;;;8BAKF;;;;0BAKJ;;;;8BAKI;;;;oBAKV;;;;;;;aAQP,OAAA,CAAM;;KA2PN,mBAAA;;;;;;SAMJ;;;;;UAKC;;;;;;;;;;;;;;;;qBAgBW;aACR,OAAA,CAAM;;KA2CN,kBAAA;;;;gBAIG;;;;aAIH,OAAA,CAAM;;KA0DN,gBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA4BmB;;;;8BAIF;;;;0BAIJ;;;;8BAII;;;;oBAIV;YACR,OAAA,CAAM;;cA2FJ,mCAxUS,sBAEd,aAAa;QAAkB,OAAA,CAAM,IAAI;MAC5C,OAAA,CAAM;;;;;;;eAcC,OAAA,CAAM,qBAAqB,uBAAuB,OAAA,CAAM"}
package/index9.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { shouldDisplayConversation } from "./conversation.js";
2
+ import { PENDING_CONVERSATION_ID, generateShortPrimaryId } from "./id.js";
3
+ import "./merge-refs.js";
4
+ import { useRenderElement } from "./use-render-element.js";
package/keys.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { AvailableAIAgent, AvailableHumanAgent, PublicWebsiteResponse } from "@cossistant/types";
2
+
1
3
  //#region ../react/src/support/text/locales/keys.d.ts
2
4
  type SupportLocale = "en" | "fr" | "es";
3
5
  type SupportTimeOfDayToken = "morning" | "afternoon" | "evening";
package/keys.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","names":[],"sources":["../../react/src/support/text/locales/keys.ts"],"sourcesContent":[],"mappings":";AAMY,KAAA,aAAA,GAAa,IAAA,GAAA,IAAA,GAAA,IAAA;AAEb,KAAA,qBAAA,GAAqB,SAAA,GAAA,WAAA,GAAA,SAAA;AAErB,KAAA,qBAAA,GAAqB;EAKrB,KAAA,EAJJ,qBAIoB;EAOhB,KAAA,EAAA,MAAA;CACF;AACA,KATE,gBAAA,GASF;EACI,YAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAT2B,IAAA,CAAK,mBAShC,EAAA,GAAA,MAAA;EACH,SAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA;IAAgB,GAAA,EAAA,MAAA;IAad,KAAA,EAAA,MAAA;EA2HD,CAAA,EAAA,GAAA,MAAA;EACA,SAAA,EAAA,CAAA,KAAc,EAAA,MAAA,EAAA,GAAS,MAAA;EAEvB,SAAA,EAAA,GAAA,GAlJM,qBAkJc;CAAW;AAC1C,KAhJW,kBAAA,GAgJX;EAAuB,OAAA,EA/Id,qBA+Ic,GAAA,IAAA;EAAC,OAAA,EA9If,qBA8Ie,CAAA,SAAA,CAAA,GAAA,IAAA;EAEpB,WAAA,EA/IS,mBA+IG,EAAA;EAAW,QAAA,EA9IjB,gBA8IiB,EAAA;CAC3B;AAAuB,cAlIX,sBAkIW,EAAA;EAAC,SAAA,4BAAA,EAAA;IAEpB,SAAA,SAAgB,EAAA,SAAA;EACV,CAAA;EACkB,SAAA,4BAAA,EAAA;IAArB,SAAA,SAAA,EAAA,SAAA;EACJ,CAAA;EAEY,SAAA,2BAAA,EAAA;IAAb,SAAA,SAAA,EAAA;MACC,SAAA,QAAA,EAAA,MAAA;IACA,CAAA;EAAI,CAAA;EAEI,SAAA,wBAAkB,EAAA;IACnB,SAAA,SAAA,EAAA,SAAA;EACkB,CAAA;EAArB,SAAA,8BAAA,EAAA;IAIuB,SAAA,SAAA,EAAA,SAAA;EAAG,CAAA;EAApB,SAAA,6BAAA,EAAA;IACF,SAAA,SAAA,EAAA,SAAA;EACF,CAAA;EAAgB,SAAA,0BAAA,EAAA;IAOd,SAAA,SAAA,EAAA,SAA2B;EAAyB,CAAA;EAExD,SAAA,8BAAA,EAAA;IACgB,SAAA,SAAA,EAAA,SAAA;EAAnB,CAAA;EACe,SAAA,0BAAA,EAAA;IAAgB,SAAA,SAAA,EAAA,SAAA;EAA2B,CAAA;EAAnB,SAAA,sBAAA,EAAA;IAA/B,SAAA,SAAA,EAAA,SAAA;EAAR,CAAA;EAHJ,SAAA,gCAAA,EAAA;IAAO,SAAA,SAAA,EAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAlCI,sBAAA,UAAgC;KAChC,cAAA,SAAuB;KAEvB,iCAA+B,kBAC1C,uBAAuB;KAEnB,yBAAuB,kBAC3B,uBAAuB;;;KAEnB,6BACM,uBACH,qBAAqB,QACzB,qCAED,aAAa,oBACZ,mBACA;KAEQ,+BACD,uBACH,qBAAqB;aAIf,iBAAiB,KAAG;WACtB;SACF;;KAOE,oDAAoD,iBAC/D,gBACO,iBACH,mBAAmB,KACnB,QAAQ,OAAO,gBAAgB,QAAQ,mBAAmB"}
1
+ {"version":3,"file":"keys.d.ts","names":[],"sources":["../../react/src/support/text/locales/keys.ts"],"sourcesContent":[],"mappings":";;;KAMY,aAAA;KAEA,qBAAA;AAFA,KAIA,qBAAA,GAJa;EAEb,KAAA,EAGJ,qBAHyB;EAErB,KAAA,EAAA,MAAA;AAKZ,CAAA;AAOY,KAPA,gBAAA,GAOkB;EACpB,YAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAP+B,IAAA,CAAK,mBAOpC,EAAA,GAAA,MAAA;EACA,SAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA;IACI,GAAA,EAAA,MAAA;IACH,KAAA,EAAA,MAAA;EAAgB,CAAA,EAAA,GAAA,MAAA;EAad,SAAA,EAAA,CAAA,KAAA,EAAA,MAyHsD,EAAA,GAAA,MAAA;EAEvD,SAAA,EAAA,GAAA,GA/IM,qBA+I0B;AAC5C,CAAA;AAEY,KA/IA,kBAAA,GA+IoB;EAAW,OAAA,EA9IjC,qBA8IiC,GAAA,IAAA;EAC1C,OAAA,EA9IS,qBA8IT,CAAA,SAAA,CAAA,GAAA,IAAA;EAAuB,WAAA,EA7IV,mBA6IU,EAAA;EAAC,QAAA,EA5Id,gBA4Ic,EAAA;AAAe,CAAA;AAEZ,cAjIf,sBAiIe,EAAA;EAC3B,SAAA,4BAAA,EAAA;IAAuB,SAAA,SAAA,EAAA,SAAA;EAAC,CAAA;EAEpB,SAAA,4BAAgB,EAAA;IACV,SAAA,SAAA,EAAA,SAAA;EACkB,CAAA;EAArB,SAAA,2BAAA,EAAA;IACJ,SAAA,SAAA,EAAA;MAEY,SAAA,QAAA,EAAA,MAAA;IAAb,CAAA;EACC,CAAA;EACA,SAAA,wBAAA,EAAA;IAAI,SAAA,SAAA,EAAA,SAAA;EAEI,CAAA;EACD,SAAA,8BAAA,EAAA;IACkB,SAAA,SAAA,EAAA,SAAA;EAArB,CAAA;EAIuB,SAAA,6BAAA,EAAA;IAAG,SAAA,SAAA,EAAA,SAAA;EAApB,CAAA;EACF,SAAA,0BAAA,EAAA;IACF,SAAA,SAAA,EAAA,SAAA;EAAgB,CAAA;EAOd,SAAA,8BAA2B,EAAA;IAAyB,SAAA,SAAA,EAAA,SAAA;EAExD,CAAA;EACgB,SAAA,0BAAA,EAAA;IAAnB,SAAA,SAAA,EAAA,SAAA;EACe,CAAA;EAAgB,SAAA,sBAAA,EAAA;IAA2B,SAAA,SAAA,EAAA,SAAA;EAAnB,CAAA;EAA/B,SAAA,gCAAA,EAAA;IAAR,SAAA,SAAA,EAAA,SAAA;EAHJ,CAAA;EAAO,SAAA,6BAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAlCI,sBAAA,UAAgC;KAChC,cAAA,SAAuB;KAEvB,iCAA+B,kBAC1C,uBAAuB;KAEnB,yBAAuB,kBAC3B,uBAAuB;;;KAEnB,6BACM,uBACH,qBAAqB,QACzB,qCAED,aAAa,oBACZ,mBACA;KAEQ,+BACD,uBACH,qBAAqB;aAIf,iBAAiB,KAAG;WACtB;SACF;;KAOE,oDAAoD,iBAC/D,gBACO,iBACH,mBAAmB,KACnB,QAAQ,OAAO,gBAAgB,QAAQ,mBAAmB"}
@@ -0,0 +1 @@
1
+ import "react";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cossistant/next",
3
3
  "type": "module",
4
- "version": "0.0.26",
4
+ "version": "0.0.28",
5
5
  "private": false,
6
6
  "author": "Cossistant team",
7
7
  "description": "Next.js-ready SDK for building AI-powered support/chat widgets. Hooks + primitives, WS-driven, TypeScript-first. Next.js-ready, Tailwind optional.",
@@ -91,7 +91,7 @@
91
91
  "access": "public"
92
92
  },
93
93
  "dependencies": {
94
- "@cossistant/react": "0.0.26",
94
+ "@cossistant/react": "0.0.28",
95
95
  "tailwindcss": "^4.1.13"
96
96
  },
97
97
  "peerDependencies": {
@@ -3,13 +3,14 @@ import { SupportConfig } from "../support-config2.js";
3
3
  import { Avatar } from "../avatar.js";
4
4
  import { AvatarFallback } from "../fallback.js";
5
5
  import { AvatarImage } from "../image.js";
6
- import { SupportBubble } from "../bubble.js";
7
6
  import { Button } from "../button.js";
8
7
  import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "../conversation-timeline.js";
9
8
  import { FileInput, MultimodalInput, SupportInput } from "../multimodal-input.js";
10
9
  import { PageDefinition, Router, RouterProps } from "../router.js";
11
10
  import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "../timeline-item.js";
11
+ import { TimelineItemAttachments, TimelineItemFiles, TimelineItemImages, extractFileParts, extractImageParts, hasAttachments } from "../timeline-item-attachments.js";
12
12
  import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "../timeline-item-group.js";
13
+ import { SupportTrigger, TriggerProps, TriggerRenderProps } from "../trigger.js";
13
14
  import { SupportWindow } from "../window.js";
14
15
  import "../index4.js";
15
- export { Avatar, AvatarFallback, AvatarImage, SupportBubble as Bubble, Button, SupportConfig as Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, SupportInput as Input, MultimodalInput, type PageDefinition, Router, type RouterProps, TimelineItem, TimelineItemContent, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemTimestamp, TypingIndicator, type TypingIndicatorProps, type TypingParticipant, type TypingParticipantType, SupportWindow as Window };
16
+ export { Avatar, AvatarFallback, AvatarImage, Button, SupportConfig as Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, SupportInput as Input, MultimodalInput, type PageDefinition, Router, type RouterProps, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, SupportTrigger as Trigger, type TriggerProps, type TriggerRenderProps, TypingIndicator, type TypingIndicatorProps, type TypingParticipant, type TypingParticipantType, SupportWindow as Window, extractFileParts, extractImageParts, hasAttachments };