@cossistant/next 0.0.32 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +4 -4
  2. package/_virtual/rolldown_runtime.js +42 -0
  3. package/hooks/index.d.ts +4 -3
  4. package/hooks/index.js +4 -2
  5. package/identify-visitor.d.ts +1 -1
  6. package/identify-visitor.js +4 -2
  7. package/index.d.ts +15 -21
  8. package/index.js +23 -10
  9. package/index.js.map +1 -0
  10. package/package.json +3 -15
  11. package/primitives/index.d.ts +13 -2
  12. package/primitives/index.d.ts.map +1 -0
  13. package/primitives/index.js +11 -2
  14. package/primitives/index.js.map +1 -0
  15. package/provider.d.ts +2 -1
  16. package/provider.js +4 -2
  17. package/react/src/hooks/index.d.ts +2 -2
  18. package/react/src/hooks/private/use-grouped-messages.d.ts +27 -2
  19. package/react/src/hooks/private/use-grouped-messages.d.ts.map +1 -1
  20. package/react/src/hooks/use-conversation-auto-seen.d.ts.map +1 -1
  21. package/react/src/hooks/use-conversation-page.d.ts.map +1 -1
  22. package/react/src/hooks/use-file-upload.d.ts +54 -1
  23. package/react/src/hooks/use-file-upload.d.ts.map +1 -0
  24. package/react/src/hooks/use-new-message-sound.d.ts.map +1 -1
  25. package/react/src/hooks/use-typing-sound.d.ts.map +1 -1
  26. package/react/src/primitives/command-block-utils.d.ts +10 -0
  27. package/react/src/primitives/command-block-utils.d.ts.map +1 -0
  28. package/react/src/primitives/index.d.ts +5 -1
  29. package/react/src/primitives/index.parts.d.ts +5 -1
  30. package/react/src/primitives/timeline-code-block.d.ts +32 -0
  31. package/react/src/primitives/timeline-code-block.d.ts.map +1 -0
  32. package/react/src/primitives/timeline-command-block.d.ts +29 -0
  33. package/react/src/primitives/timeline-command-block.d.ts.map +1 -0
  34. package/react/src/primitives/timeline-item-group.d.ts.map +1 -1
  35. package/react/src/primitives/timeline-item.d.ts +20 -1
  36. package/react/src/primitives/timeline-item.d.ts.map +1 -1
  37. package/react/src/primitives/timeline-message-layout.d.ts +9 -0
  38. package/react/src/primitives/timeline-message-layout.d.ts.map +1 -0
  39. package/react/src/provider.d.ts.map +1 -1
  40. package/react/src/realtime/provider.d.ts +0 -1
  41. package/react/src/realtime/provider.d.ts.map +1 -1
  42. package/react/src/support/components/button.d.ts +25 -1
  43. package/react/src/support/components/button.d.ts.map +1 -0
  44. package/react/src/support/components/header.d.ts +11 -0
  45. package/react/src/support/components/header.d.ts.map +1 -0
  46. package/react/src/support/context/events.d.ts +54 -1
  47. package/react/src/support/context/events.d.ts.map +1 -1
  48. package/react/src/support/context/handle.d.ts +17 -1
  49. package/react/src/support/context/handle.d.ts.map +1 -1
  50. package/react/src/support/index.d.ts +25 -5
  51. package/react/src/support/index.d.ts.map +1 -1
  52. package/react/src/support/store/support-store.d.ts.map +1 -1
  53. package/react/src/support/text/index.d.ts +34 -2
  54. package/react/src/support/text/index.d.ts.map +1 -0
  55. package/react/src/support/text/locales/keys.d.ts +11 -1
  56. package/react/src/support/text/locales/keys.d.ts.map +1 -1
  57. package/react/src/support-config.d.ts +30 -3
  58. package/react/src/support-config.d.ts.map +1 -1
  59. package/react/src/utils/index.d.ts +1 -1
  60. package/react/src/utils/merge-refs.d.ts +30 -1
  61. package/react/src/utils/merge-refs.d.ts.map +1 -0
  62. package/react/src/utils/use-render-element.d.ts.map +1 -1
  63. package/realtime/index.d.ts +1 -1
  64. package/realtime/index.js +4 -2
  65. package/styles.css +1 -0
  66. package/support/index.d.ts +9 -3
  67. package/support/index.js +5 -2
  68. package/support-config.d.ts +2 -2
  69. package/support-config.js +4 -2
  70. package/support.css +1 -2
  71. package/utils/index.d.ts +2 -1
  72. package/utils/index.js +4 -2
package/README.md CHANGED
@@ -9,13 +9,13 @@ Build fully featured customer support experiences in your NextJS app with the of
9
9
  Pick the command that matches your package manager:
10
10
 
11
11
  ```bash
12
- bun add @cossistant/next @cossistant/react
12
+ bun add @cossistant/next
13
13
  # or
14
- npm install @cossistant/next @cossistant/react
14
+ npm install @cossistant/next
15
15
  # or
16
- pnpm add @cossistant/next @cossistant/react
16
+ pnpm add @cossistant/next
17
17
  # or
18
- yarn add @cossistant/next @cossistant/react
18
+ yarn add @cossistant/next
19
19
  ```
20
20
 
21
21
  ## Need help or spot a typo?
@@ -0,0 +1,42 @@
1
+ //#region rolldown:runtime
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (all, symbols) => {
7
+ let target = {};
8
+ for (var name in all) {
9
+ __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
13
+ }
14
+ if (symbols) {
15
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
16
+ }
17
+ return target;
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
22
+ key = keys[i];
23
+ if (!__hasOwnProp.call(to, key) && key !== except) {
24
+ __defProp(to, key, {
25
+ get: ((k) => from[k]).bind(null, key),
26
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
27
+ });
28
+ }
29
+ }
30
+ }
31
+ return to;
32
+ };
33
+ var __reExport = (target, mod, secondTarget, symbols) => {
34
+ if (symbols) {
35
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
36
+ secondTarget && __defProp(secondTarget, Symbol.toStringTag, { value: "Module" });
37
+ }
38
+ __copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default");
39
+ };
40
+
41
+ //#endregion
42
+ export { __export, __reExport };
package/hooks/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { useClientQuery } from "../react/src/hooks/private/use-client-query.js";
2
2
  import { useDefaultMessages } from "../react/src/hooks/private/use-default-messages.js";
3
- import { ConversationItem, DaySeparatorItem, GroupedMessage, TimelineEventItem, TimelineToolItem, UseGroupedMessagesOptions, UseGroupedMessagesProps, useGroupedMessages } from "../react/src/hooks/private/use-grouped-messages.js";
3
+ import { ConversationItem, DaySeparatorItem, GroupedActivity, GroupedMessage, PreparedTimelineItems, TIMELINE_GROUP_WINDOW_MS, TimelineEventItem, TimelineToolItem, UseGroupedMessagesOptions, UseGroupedMessagesProps, buildTimelineReadReceiptData, groupTimelineItems, prepareTimelineItems, useGroupedMessages } from "../react/src/hooks/private/use-grouped-messages.js";
4
4
  import { UseMultimodalInputOptions, UseMultimodalInputReturn, useMultimodalInput } from "../react/src/hooks/private/use-multimodal-input.js";
5
- import { UseClientResult, useClient } from "../react/src/hooks/private/use-rest-client.js";
5
+ import { ConfigurationError, UseClientResult, useClient } from "../react/src/hooks/private/use-rest-client.js";
6
6
  import { UseComposerRefocusOptions, UseComposerRefocusReturn, useComposerRefocus } from "../react/src/hooks/use-composer-refocus.js";
7
7
  import { UseConversationOptions, UseConversationResult, useConversation } from "../react/src/hooks/use-conversation.js";
8
8
  import { CONVERSATION_AUTO_SEEN_DELAY_MS, UseConversationAutoSeenOptions, useConversationAutoSeen } from "../react/src/hooks/use-conversation-auto-seen.js";
@@ -16,6 +16,7 @@ import { ConversationTypingParticipant, useConversationTyping } from "../react/s
16
16
  import { ConversationTimelineTypingParticipant, UseConversationTimelineOptions, UseConversationTimelineReturn, useConversationTimeline } from "../react/src/hooks/use-conversation-timeline.js";
17
17
  import { UseConversationsOptions, UseConversationsResult, useConversations } from "../react/src/hooks/use-conversations.js";
18
18
  import { CreateConversationVariables, UseCreateConversationOptions, UseCreateConversationResult, useCreateConversation } from "../react/src/hooks/use-create-conversation.js";
19
+ import { FileUploadPart, UseFileUploadOptions, UseFileUploadReturn, useFileUpload } from "../react/src/hooks/use-file-upload.js";
19
20
  import { UseHomePageOptions, UseHomePageReturn, useHomePage } from "../react/src/hooks/use-home-page.js";
20
21
  import { UseMessageComposerOptions, UseMessageComposerReturn, useMessageComposer } from "../react/src/hooks/use-message-composer.js";
21
22
  import { useNewMessageSound } from "../react/src/hooks/use-new-message-sound.js";
@@ -27,4 +28,4 @@ import { useTypingSound } from "../react/src/hooks/use-typing-sound.js";
27
28
  import { UseVisitorReturn, useVisitor } from "../react/src/hooks/use-visitor.js";
28
29
  import { WindowVisibilityFocusState, useWindowVisibilityFocus } from "../react/src/hooks/use-window-visibility-focus.js";
29
30
  import "../react/src/hooks/index.js";
30
- export { CONVERSATION_AUTO_SEEN_DELAY_MS, type ConversationItem, type ConversationLifecycleState, type ConversationPreviewAssignedAgent, type ConversationPreviewLastMessage, type ConversationPreviewTypingParticipant, type ConversationPreviewTypingState, type ConversationTimelineTypingParticipant, type ConversationTypingParticipant, type CreateConversationVariables, type DaySeparatorItem, type GroupedMessage, type SendMessageOptions, type SendMessageResult, type TimelineEventItem, type TimelineToolItem, type UseClientResult, type UseComposerRefocusOptions, type UseComposerRefocusReturn, type UseConversationAutoSeenOptions, type UseConversationHistoryPageOptions, type UseConversationHistoryPageReturn, type UseConversationLifecycleOptions, type UseConversationLifecycleReturn, type UseConversationOptions, type UseConversationPageOptions, type UseConversationPageReturn, type UseConversationPreviewOptions, type UseConversationPreviewReturn, type UseConversationResult, type UseConversationTimelineItemsOptions, type UseConversationTimelineItemsResult, type UseConversationTimelineOptions, type UseConversationTimelineReturn, type UseConversationsOptions, type UseConversationsResult, type UseCreateConversationOptions, type UseCreateConversationResult, type UseGroupedMessagesOptions, type UseGroupedMessagesProps, type UseHomePageOptions, type UseHomePageReturn, type UseMessageComposerOptions, type UseMessageComposerReturn, type UseMultimodalInputOptions, type UseMultimodalInputReturn, type UseRealtimeSupportOptions, type UseRealtimeSupportResult, type UseScrollMaskOptions, type UseScrollMaskReturn, type UseSendMessageOptions, type UseSendMessageResult, type UseSoundEffectOptions, type UseSoundEffectReturn, type UseVisitorReturn, type WindowVisibilityFocusState, 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 };
31
+ export { CONVERSATION_AUTO_SEEN_DELAY_MS, ConfigurationError, ConversationItem, ConversationLifecycleState, ConversationPreviewAssignedAgent, ConversationPreviewLastMessage, ConversationPreviewTypingParticipant, ConversationPreviewTypingState, ConversationTimelineTypingParticipant, ConversationTypingParticipant, CreateConversationVariables, DaySeparatorItem, FileUploadPart, GroupedActivity, GroupedMessage, PreparedTimelineItems, SendMessageOptions, SendMessageResult, TIMELINE_GROUP_WINDOW_MS, TimelineEventItem, TimelineToolItem, UseClientResult, UseComposerRefocusOptions, UseComposerRefocusReturn, UseConversationAutoSeenOptions, UseConversationHistoryPageOptions, UseConversationHistoryPageReturn, UseConversationLifecycleOptions, UseConversationLifecycleReturn, UseConversationOptions, UseConversationPageOptions, UseConversationPageReturn, UseConversationPreviewOptions, UseConversationPreviewReturn, UseConversationResult, UseConversationTimelineItemsOptions, UseConversationTimelineItemsResult, UseConversationTimelineOptions, UseConversationTimelineReturn, UseConversationsOptions, UseConversationsResult, UseCreateConversationOptions, UseCreateConversationResult, UseFileUploadOptions, UseFileUploadReturn, UseGroupedMessagesOptions, UseGroupedMessagesProps, UseHomePageOptions, UseHomePageReturn, UseMessageComposerOptions, UseMessageComposerReturn, UseMultimodalInputOptions, UseMultimodalInputReturn, UseRealtimeSupportOptions, UseRealtimeSupportResult, UseScrollMaskOptions, UseScrollMaskReturn, UseSendMessageOptions, UseSendMessageResult, UseSoundEffectOptions, UseSoundEffectReturn, UseVisitorReturn, WindowVisibilityFocusState, buildTimelineReadReceiptData, groupTimelineItems, prepareTimelineItems, useClient, useClientQuery, useComposerRefocus, useConversation, useConversationAutoSeen, useConversationHistoryPage, useConversationLifecycle, useConversationPage, useConversationPreview, useConversationSeen, useConversationTimeline, useConversationTimelineItems, useConversationTyping, useConversations, useCreateConversation, useDebouncedConversationSeen, useDefaultMessages, useFileUpload, useGroupedMessages, useHomePage, useMessageComposer, useMultimodalInput, useNewMessageSound, useRealtimeSupport, useScrollMask, useSendMessage, useSoundEffect, useTypingSound, useVisitor, useWindowVisibilityFocus };
package/hooks/index.js CHANGED
@@ -1,3 +1,5 @@
1
- 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 "@cossistant/react/hooks";
1
+ import { __reExport } from "../_virtual/rolldown_runtime.js";
2
2
 
3
- export { 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 };
3
+ export * from "@cossistant/react/hooks"
4
+
5
+ export { };
@@ -1,2 +1,2 @@
1
1
  import { IdentifySupportVisitor, IdentifySupportVisitorProps } from "./react/src/identify-visitor.js";
2
- export { IdentifySupportVisitor, type IdentifySupportVisitorProps };
2
+ export { IdentifySupportVisitor, IdentifySupportVisitorProps };
@@ -1,5 +1,7 @@
1
1
  "use client";
2
2
 
3
- import { IdentifySupportVisitor } from "@cossistant/react/identify-visitor";
3
+ import { __reExport } from "./_virtual/rolldown_runtime.js";
4
4
 
5
- export { IdentifySupportVisitor };
5
+ export * from "@cossistant/react/identify-visitor"
6
+
7
+ export { };
package/index.d.ts CHANGED
@@ -1,14 +1,15 @@
1
1
  import { useClientQuery } from "./react/src/hooks/private/use-client-query.js";
2
2
  import { useDefaultMessages } from "./react/src/hooks/private/use-default-messages.js";
3
- import { ConversationItem, DaySeparatorItem, GroupedMessage, TimelineEventItem, TimelineToolItem, UseGroupedMessagesOptions, UseGroupedMessagesProps, useGroupedMessages } from "./react/src/hooks/private/use-grouped-messages.js";
3
+ import { ConversationItem, DaySeparatorItem, GroupedActivity, GroupedMessage, PreparedTimelineItems, TIMELINE_GROUP_WINDOW_MS, TimelineEventItem, TimelineToolItem, UseGroupedMessagesOptions, UseGroupedMessagesProps, buildTimelineReadReceiptData, groupTimelineItems, prepareTimelineItems, useGroupedMessages } from "./react/src/hooks/private/use-grouped-messages.js";
4
4
  import { UseMultimodalInputOptions, UseMultimodalInputReturn, useMultimodalInput } from "./react/src/hooks/private/use-multimodal-input.js";
5
- import { UseClientResult, useClient } from "./react/src/hooks/private/use-rest-client.js";
5
+ import { ConfigurationError, UseClientResult, useClient } from "./react/src/hooks/private/use-rest-client.js";
6
6
  import { UseComposerRefocusOptions, UseComposerRefocusReturn, useComposerRefocus } from "./react/src/hooks/use-composer-refocus.js";
7
7
  import { UseConversationOptions, UseConversationResult, useConversation } from "./react/src/hooks/use-conversation.js";
8
8
  import { CONVERSATION_AUTO_SEEN_DELAY_MS, UseConversationAutoSeenOptions, useConversationAutoSeen } from "./react/src/hooks/use-conversation-auto-seen.js";
9
9
  import { UseConversationHistoryPageOptions, UseConversationHistoryPageReturn, useConversationHistoryPage } from "./react/src/hooks/use-conversation-history-page.js";
10
10
  import { ConversationLifecycleState, UseConversationLifecycleOptions, UseConversationLifecycleReturn, useConversationLifecycle } from "./react/src/hooks/use-conversation-lifecycle.js";
11
11
  import { UseConversationPageOptions, UseConversationPageReturn, useConversationPage } from "./react/src/hooks/use-conversation-page.js";
12
+ import { SupportLocale, SupportTextContentOverrides } from "./react/src/support/text/locales/keys.js";
12
13
  import { UseConversationTimelineItemsOptions, UseConversationTimelineItemsResult, useConversationTimelineItems } from "./react/src/hooks/use-conversation-timeline-items.js";
13
14
  import { ConversationPreviewAssignedAgent, ConversationPreviewLastMessage, ConversationPreviewTypingParticipant, ConversationPreviewTypingState, UseConversationPreviewOptions, UseConversationPreviewReturn, useConversationPreview } from "./react/src/hooks/use-conversation-preview.js";
14
15
  import { useConversationSeen, useDebouncedConversationSeen } from "./react/src/hooks/use-conversation-seen.js";
@@ -16,6 +17,7 @@ import { ConversationTypingParticipant, useConversationTyping } from "./react/sr
16
17
  import { ConversationTimelineTypingParticipant, UseConversationTimelineOptions, UseConversationTimelineReturn, useConversationTimeline } from "./react/src/hooks/use-conversation-timeline.js";
17
18
  import { UseConversationsOptions, UseConversationsResult, useConversations } from "./react/src/hooks/use-conversations.js";
18
19
  import { CreateConversationVariables, UseCreateConversationOptions, UseCreateConversationResult, useCreateConversation } from "./react/src/hooks/use-create-conversation.js";
20
+ import { FileUploadPart, UseFileUploadOptions, UseFileUploadReturn, useFileUpload } from "./react/src/hooks/use-file-upload.js";
19
21
  import { UseHomePageOptions, UseHomePageReturn, useHomePage } from "./react/src/hooks/use-home-page.js";
20
22
  import { UseMessageComposerOptions, UseMessageComposerReturn, useMessageComposer } from "./react/src/hooks/use-message-composer.js";
21
23
  import { useNewMessageSound } from "./react/src/hooks/use-new-message-sound.js";
@@ -29,22 +31,8 @@ import { WindowVisibilityFocusState, useWindowVisibilityFocus } from "./react/sr
29
31
  import "./hooks/index.js";
30
32
  import { IdentifySupportVisitor, IdentifySupportVisitorProps } from "./react/src/identify-visitor.js";
31
33
  import "./identify-visitor.js";
32
- import { TypingIndicator, TypingIndicatorProps, TypingParticipant, TypingParticipantType } from "./react/src/support/components/typing-indicator.js";
33
- import { SupportConfig, SupportConfigProps } from "./react/src/support-config.js";
34
- import { Avatar } from "./react/src/primitives/avatar/avatar.js";
35
- import { AvatarFallback } from "./react/src/primitives/avatar/fallback.js";
36
- import { AvatarImage } from "./react/src/primitives/avatar/image.js";
37
- import { Button } from "./react/src/primitives/button.js";
38
- import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "./react/src/primitives/conversation-timeline.js";
39
- import { DaySeparator, DaySeparatorLabel, DaySeparatorLabelProps, DaySeparatorLine, DaySeparatorLineProps, DaySeparatorProps, DaySeparatorRenderProps, defaultFormatDate } from "./react/src/primitives/day-separator.js";
40
- import { FileInput, MultimodalInput, SupportInput } from "./react/src/primitives/multimodal-input.js";
41
- import { PageDefinition, Router, RouterProps } from "./react/src/primitives/router.js";
42
- import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "./react/src/primitives/timeline-item.js";
43
- import { TimelineItemAttachments, TimelineItemFiles, TimelineItemImages, extractFileParts, extractImageParts, hasAttachments } from "./react/src/primitives/timeline-item-attachments.js";
44
- import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "./react/src/primitives/timeline-item-group.js";
45
- import { SupportTrigger, TriggerProps, TriggerRenderProps } from "./react/src/primitives/trigger.js";
46
- import { SupportWindow } from "./react/src/primitives/window.js";
47
- import "./primitives/index.js";
34
+ import { DefaultMessage, DefaultMessageProps, SupportConfig, SupportConfigProps, extractDefaultMessagesFromChildren, resolveSupportConfigMessages } from "./react/src/support-config.js";
35
+ import { index_d_exports } from "./primitives/index.js";
48
36
  import { CossistantContextValue, CossistantProviderProps, SupportContext, SupportProvider, SupportProviderProps, UseSupportValue, useSupport } from "./react/src/provider.js";
49
37
  import "./provider.js";
50
38
  import { RealtimeAuthConfig, RealtimeContextValue, RealtimeProvider, RealtimeProviderProps, useRealtimeConnection } from "./react/src/realtime/provider.js";
@@ -54,14 +42,20 @@ import { applyConversationTypingEvent, clearTypingFromTimelineItem, clearTypingS
54
42
  import { RealtimeEventHandler, RealtimeEventHandlerEntry, RealtimeEventHandlersMap, RealtimeEventMeta, useRealtime } from "./react/src/realtime/use-realtime.js";
55
43
  import "./realtime/index.js";
56
44
  import { CustomPage } from "./react/src/support/router.js";
57
- import { Align, ContentProps, RootProps, Side } from "./react/src/support/types.js";
45
+ import { ConversationEndEvent, ConversationStartEvent, ErrorEvent, MessageReceivedEvent, MessageSentEvent, SupportEvent, SupportEventCallbacks, SupportEventType, useSupportEventEmitter, useSupportEvents } from "./react/src/support/context/events.js";
46
+ import { SupportHandle, useSupportHandle } from "./react/src/support/context/handle.js";
47
+ import { Text, useSupportText } from "./react/src/support/text/index.js";
48
+ import { Align, CollisionPadding, ContentProps, RootProps, Side, TriggerRenderProps } from "./react/src/support/types.js";
49
+ import { CoButton } from "./react/src/support/components/button.js";
50
+ import { Header } from "./react/src/support/components/header.js";
58
51
  import { WebSocketContextValue, WebSocketProvider, useWebSocket } from "./react/src/support/context/websocket.js";
59
52
  import { useSupportConfig, useSupportNavigation, useSupportStore } from "./react/src/support/store/support-store.js";
60
- import { Support, SupportProps } from "./react/src/support/index.js";
53
+ import { DefaultRoutes, NavigationState, RouteRegistry, Support, SupportContentProps, SupportPageProps, SupportPageType, SupportProps, SupportRootProps, SupportRouterProps, SupportTriggerProps } from "./react/src/support/index.js";
61
54
  import "./support/index.js";
62
55
  import "./support-config.js";
63
56
  import { shouldDisplayConversation } from "./react/src/utils/conversation.js";
64
57
  import { PENDING_CONVERSATION_ID, generateShortPrimaryId } from "./react/src/utils/id.js";
58
+ import { mergeRefs, useMergeRefs } from "./react/src/utils/merge-refs.js";
65
59
  import { useRenderElement } from "./react/src/utils/use-render-element.js";
66
60
  import "./utils/index.js";
67
- 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, DaySeparator, DaySeparatorItem, DaySeparatorLabel, DaySeparatorLabelProps, DaySeparatorLine, DaySeparatorLineProps, DaySeparatorProps, DaySeparatorRenderProps, 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, defaultFormatDate, 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 };
61
+ export { Align, CoButton as Button, CONVERSATION_AUTO_SEEN_DELAY_MS, CollisionPadding, ConfigurationError, ContentProps, ConversationEndEvent, ConversationItem, ConversationLifecycleState, ConversationPreviewAssignedAgent, ConversationPreviewLastMessage, ConversationPreviewTypingParticipant, ConversationPreviewTypingState, ConversationStartEvent, ConversationTimelineTypingParticipant, ConversationTypingParticipant, CossistantContextValue, CossistantProviderProps, CreateConversationVariables, CustomPage, DaySeparatorItem, DefaultMessage, DefaultMessageProps, DefaultRoutes, ErrorEvent, FileUploadPart, GroupedActivity, GroupedMessage, Header, IdentifySupportVisitor, IdentifySupportVisitorProps, MessageReceivedEvent, MessageSentEvent, NavigationState, PENDING_CONVERSATION_ID, PreparedTimelineItems, index_d_exports as Primitives, RealtimeAuthConfig, RealtimeContextValue, RealtimeEventHandler, RealtimeEventHandlerEntry, RealtimeEventHandlersMap, RealtimeEventMeta, RealtimeProvider, RealtimeProviderProps, RootProps, RouteRegistry, SendMessageOptions, SendMessageResult, Side, Support, SupportConfig, SupportConfigProps, SupportContentProps, SupportContext, SupportEvent, SupportEventCallbacks, SupportEventType, SupportHandle, SupportLocale, SupportPageProps, SupportPageType, SupportProps, SupportProvider, SupportProviderProps, SupportRealtimeProvider, SupportRootProps, SupportRouterProps, SupportTextContentOverrides, SupportTriggerProps, TIMELINE_GROUP_WINDOW_MS, Text, TimelineEventItem, TimelineToolItem, TriggerRenderProps, UseClientResult, UseComposerRefocusOptions, UseComposerRefocusReturn, UseConversationAutoSeenOptions, UseConversationHistoryPageOptions, UseConversationHistoryPageReturn, UseConversationLifecycleOptions, UseConversationLifecycleReturn, UseConversationOptions, UseConversationPageOptions, UseConversationPageReturn, UseConversationPreviewOptions, UseConversationPreviewReturn, UseConversationResult, UseConversationTimelineItemsOptions, UseConversationTimelineItemsResult, UseConversationTimelineOptions, UseConversationTimelineReturn, UseConversationsOptions, UseConversationsResult, UseCreateConversationOptions, UseCreateConversationResult, UseFileUploadOptions, UseFileUploadReturn, UseGroupedMessagesOptions, UseGroupedMessagesProps, UseHomePageOptions, UseHomePageReturn, UseMessageComposerOptions, UseMessageComposerReturn, UseMultimodalInputOptions, UseMultimodalInputReturn, UseRealtimeSupportOptions, UseRealtimeSupportResult, UseScrollMaskOptions, UseScrollMaskReturn, UseSendMessageOptions, UseSendMessageResult, UseSoundEffectOptions, UseSoundEffectReturn, UseSupportValue, UseVisitorReturn, WebSocketContextValue, WebSocketProvider, WindowVisibilityFocusState, applyConversationSeenEvent, applyConversationTypingEvent, buildTimelineReadReceiptData, clearTypingFromTimelineItem, clearTypingState, extractDefaultMessagesFromChildren, generateShortPrimaryId, groupTimelineItems, hydrateConversationSeen, mergeRefs, prepareTimelineItems, resolveSupportConfigMessages, setTypingState, shouldDisplayConversation, upsertConversationSeen, useClient, useClientQuery, useComposerRefocus, useConversation, useConversationAutoSeen, useConversationHistoryPage, useConversationLifecycle, useConversationPage, useConversationPreview, useConversationSeen, useConversationTimeline, useConversationTimelineItems, useConversationTyping, useConversations, useCreateConversation, useDebouncedConversationSeen, useDefaultMessages, useFileUpload, useGroupedMessages, useHomePage, useMergeRefs, useMessageComposer, useMultimodalInput, useNewMessageSound, useRealtime, useRealtimeConnection, useRealtimeSupport, useRenderElement, useScrollMask, useSendMessage, useSoundEffect, useSupport, useSupportConfig, useSupportEventEmitter, useSupportEvents, useSupportHandle, useSupportNavigation, useSupportStore, useSupportText, useTypingSound, useVisitor, useWebSocket, useWindowVisibilityFocus };
package/index.js CHANGED
@@ -1,12 +1,25 @@
1
1
  "use client";
2
2
 
3
- import { IdentifySupportVisitor } from "./identify-visitor.js";
4
- 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";
5
- import { Avatar, AvatarFallback, AvatarImage, Button, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, DaySeparator, DaySeparatorLabel, DaySeparatorLine, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, Trigger, TypingIndicator, Window, defaultFormatDate, extractFileParts, extractImageParts, hasAttachments } from "./primitives/index.js";
6
- import { SupportContext, SupportProvider, useSupport } from "./provider.js";
7
- import { RealtimeProvider, SupportRealtimeProvider, applyConversationSeenEvent, applyConversationTypingEvent, clearTypingFromTimelineItem, clearTypingState, hydrateConversationSeen, setTypingState, upsertConversationSeen, useRealtime, useRealtimeConnection } from "./realtime/index.js";
8
- import { Support, WebSocketProvider, useSupportConfig, useSupportNavigation, useSupportStore, useWebSocket } from "./support/index.js";
9
- import { SupportConfig } from "./support-config.js";
10
- import { PENDING_CONVERSATION_ID, generateShortPrimaryId, shouldDisplayConversation, useRenderElement } from "./utils/index.js";
11
-
12
- export { Avatar, AvatarFallback, AvatarImage, Button, CONVERSATION_AUTO_SEEN_DELAY_MS, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, DaySeparator, DaySeparatorLabel, DaySeparatorLine, 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, defaultFormatDate, 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 };
3
+ import { __export, __reExport } from "./_virtual/rolldown_runtime.js";
4
+ import { primitives_exports } from "./primitives/index.js";
5
+
6
+ export * from "@cossistant/react/identify-visitor"
7
+
8
+ export * from "@cossistant/react/hooks"
9
+
10
+ export * from "@cossistant/react/provider"
11
+
12
+ export * from "@cossistant/react/realtime"
13
+
14
+ export * from "@cossistant/react/support"
15
+
16
+ export * from "@cossistant/react/support-config"
17
+
18
+ export * from "@cossistant/react/utils"
19
+
20
+ //#region src/index.ts
21
+ var src_exports = /* @__PURE__ */ __export({ Primitives: () => primitives_exports });
22
+
23
+ //#endregion
24
+ export { primitives_exports as Primitives };
25
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["\"use client\";\n\nexport * from \"./hooks\";\nexport * from \"./identify-visitor\";\nexport * as Primitives from \"./primitives\";\nexport * from \"./provider\";\nexport * from \"./realtime\";\nexport * from \"./support\";\nexport * from \"./support-config\";\nexport * from \"./utils\";\n"],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cossistant/next",
3
3
  "type": "module",
4
- "version": "0.0.32",
4
+ "version": "0.1.0",
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.",
@@ -39,10 +39,6 @@
39
39
  "types": "./primitives/index.d.ts",
40
40
  "import": "./primitives/index.js"
41
41
  },
42
- "./primitives/*": {
43
- "types": "./primitives/*.d.ts",
44
- "import": "./primitives/*.js"
45
- },
46
42
  "./support": {
47
43
  "types": "./support/index.d.ts",
48
44
  "import": "./support/index.js"
@@ -51,11 +47,8 @@
51
47
  "types": "./hooks/index.d.ts",
52
48
  "import": "./hooks/index.js"
53
49
  },
54
- "./hooks/*": {
55
- "types": "./hooks/*.d.ts",
56
- "import": "./hooks/*.js"
57
- },
58
50
  "./support.css": "./support.css",
51
+ "./styles.css": "./styles.css",
59
52
  "./realtime": {
60
53
  "types": "./realtime/index.d.ts",
61
54
  "import": "./realtime/index.js"
@@ -64,10 +57,6 @@
64
57
  "types": "./utils/index.d.ts",
65
58
  "import": "./utils/index.js"
66
59
  },
67
- "./utils/*": {
68
- "types": "./utils/*.d.ts",
69
- "import": "./utils/*.js"
70
- },
71
60
  "./identify-visitor": {
72
61
  "types": "./identify-visitor.d.ts",
73
62
  "import": "./identify-visitor.js"
@@ -91,8 +80,7 @@
91
80
  "access": "public"
92
81
  },
93
82
  "dependencies": {
94
- "@cossistant/react": "0.0.32",
95
- "tailwindcss": "^4.1.13"
83
+ "@cossistant/react": "0.1.0"
96
84
  },
97
85
  "peerDependencies": {
98
86
  "react": ">=18 <20",
@@ -4,14 +4,25 @@ import { Avatar } from "../react/src/primitives/avatar/avatar.js";
4
4
  import { AvatarFallback } from "../react/src/primitives/avatar/fallback.js";
5
5
  import { AvatarImage } from "../react/src/primitives/avatar/image.js";
6
6
  import { Button } from "../react/src/primitives/button.js";
7
+ import { CommandPackageManager, CommandVariants, DEFAULT_PACKAGE_MANAGER, mapCommandVariants } from "../react/src/primitives/command-block-utils.js";
7
8
  import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "../react/src/primitives/conversation-timeline.js";
8
9
  import { DaySeparator, DaySeparatorLabel, DaySeparatorLabelProps, DaySeparatorLine, DaySeparatorLineProps, DaySeparatorProps, DaySeparatorRenderProps, defaultFormatDate } from "../react/src/primitives/day-separator.js";
9
10
  import { FileInput, MultimodalInput, SupportInput } from "../react/src/primitives/multimodal-input.js";
10
11
  import { PageDefinition, Router, RouterProps } from "../react/src/primitives/router.js";
11
- import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "../react/src/primitives/timeline-item.js";
12
+ import { TimelineCodeBlock, TimelineCodeBlockProps } from "../react/src/primitives/timeline-code-block.js";
13
+ import { TimelineCommandBlock, TimelineCommandBlockProps } from "../react/src/primitives/timeline-command-block.js";
14
+ import { TimelineItem, TimelineItemContent, TimelineItemContentMarkdownRenderers, TimelineItemTimestamp } from "../react/src/primitives/timeline-item.js";
12
15
  import { TimelineItemAttachments, TimelineItemFiles, TimelineItemImages, extractFileParts, extractImageParts, hasAttachments } from "../react/src/primitives/timeline-item-attachments.js";
13
16
  import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "../react/src/primitives/timeline-item-group.js";
17
+ import { hasExpandedTimelineContent } from "../react/src/primitives/timeline-message-layout.js";
14
18
  import { SupportTrigger, TriggerProps, TriggerRenderProps } from "../react/src/primitives/trigger.js";
15
19
  import { SupportWindow } from "../react/src/primitives/window.js";
16
20
  import "../react/src/primitives/index.js";
17
- export { Avatar, AvatarFallback, AvatarImage, Button, SupportConfig as Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, DaySeparator, DaySeparatorLabel, type DaySeparatorLabelProps, DaySeparatorLine, type DaySeparatorLineProps, type DaySeparatorProps, type DaySeparatorRenderProps, 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, defaultFormatDate, extractFileParts, extractImageParts, hasAttachments };
21
+
22
+ //#region src/primitives/index.d.ts
23
+ declare namespace index_d_exports {
24
+ export { Avatar, AvatarFallback, AvatarImage, Button, CommandPackageManager, CommandVariants, SupportConfig as Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, DEFAULT_PACKAGE_MANAGER, DaySeparator, DaySeparatorLabel, DaySeparatorLabelProps, DaySeparatorLine, DaySeparatorLineProps, DaySeparatorProps, DaySeparatorRenderProps, FileInput, SupportInput as Input, MultimodalInput, PageDefinition, Router, RouterProps, TimelineCodeBlock, TimelineCodeBlockProps, TimelineCommandBlock, TimelineCommandBlockProps, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemContentMarkdownRenderers, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, SupportTrigger as Trigger, TriggerProps, TriggerRenderProps, TypingIndicator, TypingIndicatorProps, TypingParticipant, TypingParticipantType, SupportWindow as Window, defaultFormatDate, extractFileParts, extractImageParts, hasAttachments, hasExpandedTimelineContent, mapCommandVariants };
25
+ }
26
+ //#endregion
27
+ export { Avatar, AvatarFallback, AvatarImage, Button, CommandPackageManager, CommandVariants, SupportConfig as Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, DEFAULT_PACKAGE_MANAGER, DaySeparator, DaySeparatorLabel, DaySeparatorLabelProps, DaySeparatorLine, DaySeparatorLineProps, DaySeparatorProps, DaySeparatorRenderProps, FileInput, SupportInput as Input, MultimodalInput, PageDefinition, Router, RouterProps, TimelineCodeBlock, TimelineCodeBlockProps, TimelineCommandBlock, TimelineCommandBlockProps, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemContentMarkdownRenderers, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, SupportTrigger as Trigger, TriggerProps, TriggerRenderProps, TypingIndicator, TypingIndicatorProps, TypingParticipant, TypingParticipantType, SupportWindow as Window, defaultFormatDate, extractFileParts, extractImageParts, hasAttachments, hasExpandedTimelineContent, index_d_exports, mapCommandVariants };
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/primitives/index.ts"],"sourcesContent":[],"mappings":""}
@@ -1,5 +1,14 @@
1
1
  "use client";
2
2
 
3
- import { Avatar, AvatarFallback, AvatarImage, Button, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, DaySeparator, DaySeparatorLabel, DaySeparatorLine, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, Trigger, TypingIndicator, Window, defaultFormatDate, extractFileParts, extractImageParts, hasAttachments } from "@cossistant/react/primitives";
3
+ import { __reExport } from "../_virtual/rolldown_runtime.js";
4
4
 
5
- export { Avatar, AvatarFallback, AvatarImage, Button, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, DaySeparator, DaySeparatorLabel, DaySeparatorLine, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, Trigger, TypingIndicator, Window, defaultFormatDate, extractFileParts, extractImageParts, hasAttachments };
5
+ export * from "@cossistant/react/primitives"
6
+
7
+ //#region src/primitives/index.ts
8
+ var primitives_exports = {};
9
+ import * as import___cossistant_react_primitives from "@cossistant/react/primitives";
10
+ __reExport(primitives_exports, import___cossistant_react_primitives);
11
+
12
+ //#endregion
13
+ export { primitives_exports };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/primitives/index.ts"],"sourcesContent":["\"use client\";\n\nexport * from \"@cossistant/react/primitives\";\n"],"mappings":""}
package/provider.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ import { ConfigurationError } from "./react/src/hooks/private/use-rest-client.js";
1
2
  import { CossistantContextValue, CossistantProviderProps, SupportContext, SupportProvider, SupportProviderProps, UseSupportValue, useSupport } from "./react/src/provider.js";
2
- export { type CossistantContextValue, type CossistantProviderProps, SupportContext, SupportProvider, type SupportProviderProps, type UseSupportValue, useSupport };
3
+ export { ConfigurationError, CossistantContextValue, CossistantProviderProps, SupportContext, SupportProvider, SupportProviderProps, UseSupportValue, useSupport };
package/provider.js CHANGED
@@ -1,5 +1,7 @@
1
1
  "use client";
2
2
 
3
- import { SupportContext, SupportProvider, useSupport } from "@cossistant/react/provider";
3
+ import { __reExport } from "./_virtual/rolldown_runtime.js";
4
4
 
5
- export { SupportContext, SupportProvider, useSupport };
5
+ export * from "@cossistant/react/provider"
6
+
7
+ export { };
@@ -1,6 +1,6 @@
1
1
  import { useClientQuery } from "./private/use-client-query.js";
2
2
  import { useDefaultMessages } from "./private/use-default-messages.js";
3
- import { ConversationItem, DaySeparatorItem, GroupedMessage, TimelineEventItem, TimelineToolItem, UseGroupedMessagesOptions, UseGroupedMessagesProps, useGroupedMessages } from "./private/use-grouped-messages.js";
3
+ import { ConversationItem, DaySeparatorItem, GroupedActivity, GroupedMessage, PreparedTimelineItems, TIMELINE_GROUP_WINDOW_MS, TimelineEventItem, TimelineToolItem, UseGroupedMessagesOptions, UseGroupedMessagesProps, buildTimelineReadReceiptData, groupTimelineItems, prepareTimelineItems, useGroupedMessages } from "./private/use-grouped-messages.js";
4
4
  import { UseMultimodalInputOptions, UseMultimodalInputReturn, useMultimodalInput } from "./private/use-multimodal-input.js";
5
5
  import { ConfigurationError, UseClientResult, useClient } from "./private/use-rest-client.js";
6
6
  import { UseComposerRefocusOptions, UseComposerRefocusReturn, useComposerRefocus } from "./use-composer-refocus.js";
@@ -16,7 +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
+ import { FileUploadPart, UseFileUploadOptions, UseFileUploadReturn, useFileUpload } from "./use-file-upload.js";
20
20
  import { UseHomePageOptions, UseHomePageReturn, useHomePage } from "./use-home-page.js";
21
21
  import { UseMessageComposerOptions, UseMessageComposerReturn, useMessageComposer } from "./use-message-composer.js";
22
22
  import { useNewMessageSound } from "./use-new-message-sound.js";
@@ -11,6 +11,18 @@ type GroupedMessage = {
11
11
  firstMessageTime: Date;
12
12
  lastMessageTime: Date;
13
13
  };
14
+ type GroupedActivity = {
15
+ type: "activity_group";
16
+ senderId: string;
17
+ senderType: SenderType;
18
+ items: TimelineItem[];
19
+ firstItemId: string;
20
+ lastItemId: string;
21
+ firstItemTime: Date;
22
+ lastItemTime: Date;
23
+ hasEvent: boolean;
24
+ hasTool: boolean;
25
+ };
14
26
  type TimelineEventItem = {
15
27
  type: "timeline_event";
16
28
  item: TimelineItem;
@@ -27,13 +39,26 @@ type DaySeparatorItem = {
27
39
  date: Date;
28
40
  dateString: string;
29
41
  };
30
- type ConversationItem = GroupedMessage | TimelineEventItem | TimelineToolItem | DaySeparatorItem;
42
+ type ConversationItem = GroupedMessage | GroupedActivity | TimelineEventItem | TimelineToolItem | DaySeparatorItem;
31
43
  type UseGroupedMessagesOptions = {
32
44
  items: TimelineItem[];
33
45
  seenData?: ConversationSeen[];
34
46
  currentViewerId?: string;
35
47
  };
36
48
  type UseGroupedMessagesProps = UseGroupedMessagesOptions;
49
+ type PreparedTimelineItems = {
50
+ items: TimelineItem[];
51
+ times: number[];
52
+ didSort: boolean;
53
+ };
54
+ declare const TIMELINE_GROUP_WINDOW_MS: number;
55
+ declare const prepareTimelineItems: (items: TimelineItem[]) => PreparedTimelineItems;
56
+ declare const groupTimelineItems: (items: TimelineItem[], itemTimes: number[]) => ConversationItem[];
57
+ declare const buildTimelineReadReceiptData: (seenData: ConversationSeen[], sortedMessageItems: TimelineItem[], sortedMessageTimes: number[]) => {
58
+ seenByMap: Map<string, Set<string>>;
59
+ lastReadMessageMap: Map<string, string>;
60
+ unreadCountMap: Map<string, number>;
61
+ };
37
62
  /**
38
63
  * Batches sequential timeline items from the same sender into groups and enriches
39
64
  * them with read-receipt helpers so UIs can render conversation timelines with
@@ -57,5 +82,5 @@ declare const useGroupedMessages: ({
57
82
  hasUnreadAfter: (messageId: string, userId: string) => boolean;
58
83
  };
59
84
  //#endregion
60
- export { ConversationItem, DaySeparatorItem, GroupedMessage, TimelineEventItem, TimelineToolItem, UseGroupedMessagesOptions, UseGroupedMessagesProps, useGroupedMessages };
85
+ export { ConversationItem, DaySeparatorItem, GroupedActivity, GroupedMessage, PreparedTimelineItems, TIMELINE_GROUP_WINDOW_MS, TimelineEventItem, TimelineToolItem, UseGroupedMessagesOptions, UseGroupedMessagesProps, buildTimelineReadReceiptData, groupTimelineItems, prepareTimelineItems, useGroupedMessages };
61
86
  //# sourceMappingURL=use-grouped-messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-grouped-messages.d.ts","names":[],"sources":["../../../../../../react/src/hooks/private/use-grouped-messages.ts"],"sourcesContent":[],"mappings":";;;AAKY,KAAA,cAAA,GAAc;EAGb,IAAA,EAAA,eAAA;EACL,QAAA,EAAA,MAAA;EAGW,UAAA,EAJN,UAIM;EACD,KAAA,EAJV,YAIU,EAAA;EAAI,cAAA,EAAA,MAAA;EAGV,aAAA,EAAA,MAAiB;EAMjB,gBAAA,EAVO,IAUS;EAOhB,eAAA,EAhBM,IAgBU;AAM5B,CAAA;AACG,KApBS,iBAAA,GAoBT;EACA,IAAA,EAAA,gBAAA;EACA,IAAA,EApBI,YAoBJ;EACA,SAAA,EApBS,IAoBT;CAAgB;AAEP,KAnBA,gBAAA,GAmBA;EAMA,IAAA,EAAA,eAAA;EAmQC,IAAA,EA1RN,YA0RM;EAAsB,IAAA,EAAA,MAAA,GAAA,IAAA;EAAA,SAAA,EAxRvB,IAwRuB;CAAA;AAIhC,KAzRS,gBAAA,GAyRT;;QAvRI;;;KAIK,gBAAA,GACT,iBACA,oBACA,mBACA;KAES,yBAAA;SACJ;aACI;;;KAIA,uBAAA,GAA0B;;;;;;;cAmQzB;;;;GAIV"}
1
+ {"version":3,"file":"use-grouped-messages.d.ts","names":[],"sources":["../../../../../../react/src/hooks/private/use-grouped-messages.ts"],"sourcesContent":[],"mappings":";;;AAMY,KAAA,cAAA,GAAc;EAGb,IAAA,EAAA,eAAA;EACL,QAAA,EAAA,MAAA;EAGW,UAAA,EAJN,UAIM;EACD,KAAA,EAJV,YAIU,EAAA;EAAI,cAAA,EAAA,MAAA;EAGV,aAAA,EAAA,MAAe;EAGd,gBAAA,EAPM,IAON;EACL,eAAA,EAPU,IAOV;CAGQ;AACD,KARH,eAAA,GAQG;EAAI,IAAA,EAAA,gBAAA;EAKP,QAAA,EAAA,MAAA;EAMA,UAAA,EAhBC,UAgBe;EAOhB,KAAA,EAtBJ,YAsBoB,EAAA;EAMhB,WAAA,EAAA,MAAgB;EACzB,UAAA,EAAA,MAAA;EACA,aAAA,EA3Ba,IA2Bb;EACA,YAAA,EA3BY,IA2BZ;EACA,QAAA,EAAA,OAAA;EACA,OAAA,EAAA,OAAA;CAAgB;AAEP,KA1BA,iBAAA,GA0ByB;EAMzB,IAAA,EAAA,gBAAA;EAEA,IAAA,EAhCL,YAgCK;EAMC,SAAA,EArCD,IAqCC;AA2Eb,CAAA;AAmEa,KAhLD,gBAAA,GA6UX;EAIY,IAAA,EAAA,eAAA;EACF,IAAA,EAhVJ,YAgVI;EACU,IAAA,EAAA,MAAA,GAAA,IAAA;aA/UT;;KAGA,gBAAA;;QAEL;EA0YM,UAAA,EAAA,MAAA;CAAsB;AAAA,KAtYvB,gBAAA,GACT,cAqYgC,GApYhC,eAoYgC,GAnYhC,iBAmYgC,GAlYhC,gBAkYgC,GAjYhC,gBAiYgC;AAAA,KA/XvB,yBAAA,GA+XuB;EAIhC,KAAA,EAlYK,YAkYL,EAAA;aAjYS;;;KAIA,uBAAA,GAA0B;KAE1B,qBAAA;SACJ;;;;cAKK;cA2EA,8BACL,mBACL;cAiEU,4BACL,wCAEL;cA8JU,yCACF,wCACU;;;;;;;;;;;cAgER;;;;GAIV"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-conversation-auto-seen.d.ts","names":[],"sources":["../../../../../react/src/hooks/use-conversation-auto-seen.ts"],"sourcesContent":[],"mappings":";;;cASa,+BAAA;AAAA,KAED,8BAAA,GAFgC;EAEhC;AA4DZ;;UAxDS;;;;;;;;;;;;;oBAgBU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwCH,uBAAA,UACN"}
1
+ {"version":3,"file":"use-conversation-auto-seen.d.ts","names":[],"sources":["../../../../../react/src/hooks/use-conversation-auto-seen.ts"],"sourcesContent":[],"mappings":";;;cASa,+BAAA;AAAA,KAMD,8BAAA,GANgC;EAMhC;AA4DZ;;UAxDS;;;;;;;;;;;;;oBAgBU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwCH,uBAAA,UACN"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-conversation-page.d.ts","names":[],"sources":["../../../../../react/src/hooks/use-conversation-page.ts"],"sourcesContent":[],"mappings":";AAgBY,KAAA,0BAAA,GAA0B;EA+B1B;;;;EAgBQ,cAAA,EAAA,MAAA;EAOD;;AAuCnB;;;;;;;;;;UAxES;;;;;;;;KAUG,yBAAA;;;SAIJ;;SAEA;;;WAKC;;;;;sBAKW;;;;;oBAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCH,mBAAA,UACN,6BACP"}
1
+ {"version":3,"file":"use-conversation-page.d.ts","names":[],"sources":["../../../../../react/src/hooks/use-conversation-page.ts"],"sourcesContent":[],"mappings":";AAgBY,KAAA,0BAAA,GAA0B;EA+B1B;;;;EAgBQ,cAAA,EAAA,MAAA;EAOD;;AA2CnB;;;;;;;;;;UA5ES;;;;;;;;KAUG,yBAAA;;;SAIJ;;SAEA;;;WAKC;;;;;sBAKW;;;;;oBAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2CH,mBAAA,UACN,6BACP"}
@@ -1 +1,54 @@
1
- import { CossistantClient } from "@cossistant/core";
1
+ import { CossistantClient } from "@cossistant/core";
2
+
3
+ //#region ../react/src/hooks/use-file-upload.d.ts
4
+ type FileUploadPart = TimelinePartImage | TimelinePartFile;
5
+ type UseFileUploadOptions = {
6
+ /**
7
+ * Optional Cossistant client instance.
8
+ * If not provided, uses the client from SupportProvider context.
9
+ */
10
+ client?: CossistantClient;
11
+ };
12
+ type UseFileUploadReturn = {
13
+ /**
14
+ * Upload files and return timeline parts ready to include in a message.
15
+ * Files are uploaded to S3 in parallel.
16
+ */
17
+ uploadFiles: (files: File[], conversationId: string) => Promise<FileUploadPart[]>;
18
+ /**
19
+ * Whether an upload is currently in progress.
20
+ */
21
+ isUploading: boolean;
22
+ /**
23
+ * Upload progress (0-100). Updates as files complete.
24
+ */
25
+ progress: number;
26
+ /**
27
+ * Error from the most recent upload attempt, if any.
28
+ */
29
+ error: Error | null;
30
+ /**
31
+ * Reset the upload state (clear errors and progress).
32
+ */
33
+ reset: () => void;
34
+ };
35
+ /**
36
+ * Hook for uploading files to S3 for inclusion in chat messages.
37
+ * Handles validation, upload progress tracking, and error management.
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * const { uploadFiles, isUploading, error } = useFileUpload();
42
+ *
43
+ * const handleSend = async () => {
44
+ * if (files.length > 0) {
45
+ * const parts = await uploadFiles(files, conversationId);
46
+ * // Include parts in message...
47
+ * }
48
+ * };
49
+ * ```
50
+ */
51
+ declare function useFileUpload(options?: UseFileUploadOptions): UseFileUploadReturn;
52
+ //#endregion
53
+ export { FileUploadPart, UseFileUploadOptions, UseFileUploadReturn, useFileUpload };
54
+ //# sourceMappingURL=use-file-upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-file-upload.d.ts","names":[],"sources":["../../../../../react/src/hooks/use-file-upload.ts"],"sourcesContent":[],"mappings":";;;KAeY,cAAA,GAAiB,oBAAoB;AAArC,KAEA,oBAAA,GAFiB;EAEjB;AAQZ;;;EAQM,MAAA,CAAA,EAXI,gBAWJ;CAeE;AAAK,KAvBD,mBAAA,GAuBC;EAwBG;;;;uBAzCP,mCAEH,QAAQ;;;;;;;;;;;;SAeN;;;;;;;;;;;;;;;;;;;;;;iBAwBQ,aAAA,WACN,uBACP"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-new-message-sound.d.ts","names":[],"sources":["../../../../../react/src/hooks/use-new-message-sound.ts"],"sourcesContent":[],"mappings":";;AAqBA;;;;;;;;;;;;;;iBAAgB,kBAAA"}
1
+ {"version":3,"file":"use-new-message-sound.d.ts","names":[],"sources":["../../../../../react/src/hooks/use-new-message-sound.ts"],"sourcesContent":[],"mappings":";;AAmBA;;;;;;;;;;;;;;iBAAgB,kBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-typing-sound.d.ts","names":[],"sources":["../../../../../react/src/hooks/use-typing-sound.ts"],"sourcesContent":[],"mappings":";;AAiBA;;;;;;;;;iBAAgB,cAAA"}
1
+ {"version":3,"file":"use-typing-sound.d.ts","names":[],"sources":["../../../../../react/src/hooks/use-typing-sound.ts"],"sourcesContent":[],"mappings":";;AAcA;;;;;;;;;iBAAgB,cAAA"}
@@ -0,0 +1,10 @@
1
+ //#region ../react/src/primitives/command-block-utils.d.ts
2
+
3
+ declare const DEFAULT_PACKAGE_MANAGER: "npm";
4
+ declare const COMMAND_PACKAGE_MANAGERS: readonly ["npm", "yarn", "pnpm", "bun"];
5
+ type CommandPackageManager = (typeof COMMAND_PACKAGE_MANAGERS)[number];
6
+ type CommandVariants = Record<CommandPackageManager, string>;
7
+ declare function mapCommandVariants(input: string): CommandVariants | null;
8
+ //#endregion
9
+ export { CommandPackageManager, CommandVariants, DEFAULT_PACKAGE_MANAGER, mapCommandVariants };
10
+ //# sourceMappingURL=command-block-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-block-utils.d.ts","names":[],"sources":["../../../../../react/src/primitives/command-block-utils.ts"],"sourcesContent":[],"mappings":";;AAQY,cAJC,uBAI+B,EAAA,KAAA;AAEhC,cAJC,wBAIwB,EAAA,SAAA,CAAA,KAAP,EAAA,MAAM,EAAA,MAAA,EAAA,KAAA,CAAA;AAqUpB,KAvUJ,qBAAA,GAuUsB,CAAA,OAvUU,wBAuUsB,CAAA,CAAA,MAAA,CAAA;KArUtD,eAAA,GAAkB,OAAO;iBAqUrB,kBAAA,iBAAmC"}
@@ -4,13 +4,17 @@ import { Avatar } from "./avatar/avatar.js";
4
4
  import { AvatarFallback } from "./avatar/fallback.js";
5
5
  import { AvatarImage } from "./avatar/image.js";
6
6
  import { Button } from "./button.js";
7
+ import { CommandPackageManager, CommandVariants, DEFAULT_PACKAGE_MANAGER, mapCommandVariants } from "./command-block-utils.js";
7
8
  import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "./conversation-timeline.js";
8
9
  import { DaySeparator, DaySeparatorLabel, DaySeparatorLabelProps, DaySeparatorLine, DaySeparatorLineProps, DaySeparatorProps, DaySeparatorRenderProps, defaultFormatDate } from "./day-separator.js";
9
10
  import { FileInput, MultimodalInput, SupportInput } from "./multimodal-input.js";
10
11
  import { PageDefinition, Router, RouterProps } from "./router.js";
11
- import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "./timeline-item.js";
12
+ import { TimelineCodeBlock, TimelineCodeBlockProps } from "./timeline-code-block.js";
13
+ import { TimelineCommandBlock, TimelineCommandBlockProps } from "./timeline-command-block.js";
14
+ import { TimelineItem, TimelineItemContent, TimelineItemContentMarkdownRenderers, TimelineItemTimestamp } from "./timeline-item.js";
12
15
  import { TimelineItemAttachments, TimelineItemFiles, TimelineItemImages, extractFileParts, extractImageParts, hasAttachments } from "./timeline-item-attachments.js";
13
16
  import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "./timeline-item-group.js";
17
+ import { hasExpandedTimelineContent } from "./timeline-message-layout.js";
14
18
  import { SupportTrigger, TriggerProps, TriggerRenderProps } from "./trigger.js";
15
19
  import { SupportWindow } from "./window.js";
16
20
  import "./index.parts.js";