@cossistant/next 0.0.20 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/hooks/index.d.ts +4 -1
- package/index.d.ts +5 -4
- package/index2.d.ts +3 -0
- package/index2.parts.d.ts +1 -3
- package/index4.d.ts +1 -3
- package/index7.d.ts +11 -6
- package/index7.d.ts.map +1 -1
- package/package.json +3 -3
- package/primitives/index.d.ts +2 -4
- package/router.d.ts +18 -20
- package/router.d.ts.map +1 -1
- package/router2.d.ts +12 -0
- package/router2.d.ts.map +1 -0
- package/support-config2.d.ts.map +1 -1
- package/use-conversation-auto-seen.d.ts +1 -1
- package/use-conversation-seen.d.ts.map +1 -1
- package/use-grouped-messages.d.ts.map +1 -1
- package/use-new-message-sound.d.ts +23 -0
- package/use-new-message-sound.d.ts.map +1 -0
- package/use-sound-effect.d.ts +30 -0
- package/use-sound-effect.d.ts.map +1 -0
- package/use-typing-sound.d.ts +18 -0
- package/use-typing-sound.d.ts.map +1 -0
- package/page-registry.d.ts +0 -30
- package/page-registry.d.ts.map +0 -1
- package/page.d.ts +0 -21
- package/page.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -9,11 +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
|
|
12
|
+
bun add @cossistant/next @cossistant/react
|
|
13
13
|
# or
|
|
14
|
-
npm install @cossistant/next
|
|
14
|
+
npm install @cossistant/next @cossistant/react
|
|
15
15
|
# or
|
|
16
|
-
|
|
16
|
+
pnpm add @cossistant/next @cossistant/react
|
|
17
|
+
# or
|
|
18
|
+
yarn add @cossistant/next @cossistant/react
|
|
17
19
|
```
|
|
18
20
|
|
|
19
21
|
## Need help or spot a typo?
|
package/hooks/index.d.ts
CHANGED
|
@@ -18,10 +18,13 @@ import { UseConversationsOptions, UseConversationsResult, useConversations } fro
|
|
|
18
18
|
import { CreateConversationVariables, UseCreateConversationOptions, UseCreateConversationResult, useCreateConversation } from "../use-create-conversation.js";
|
|
19
19
|
import { UseHomePageOptions, UseHomePageReturn, useHomePage } from "../use-home-page.js";
|
|
20
20
|
import { UseMessageComposerOptions, UseMessageComposerReturn, useMessageComposer } from "../use-message-composer.js";
|
|
21
|
+
import { useNewMessageSound } from "../use-new-message-sound.js";
|
|
21
22
|
import { UseRealtimeSupportOptions, UseRealtimeSupportResult, useRealtimeSupport } from "../use-realtime-support.js";
|
|
22
23
|
import { UseScrollMaskOptions, UseScrollMaskReturn, useScrollMask } from "../use-scroll-mask.js";
|
|
23
24
|
import { SendMessageOptions, SendMessageResult, UseSendMessageOptions, UseSendMessageResult, useSendMessage } from "../use-send-message.js";
|
|
25
|
+
import { UseSoundEffectOptions, UseSoundEffectReturn, useSoundEffect } from "../use-sound-effect.js";
|
|
26
|
+
import { useTypingSound } from "../use-typing-sound.js";
|
|
24
27
|
import { UseVisitorReturn, useVisitor } from "../use-visitor.js";
|
|
25
28
|
import { WindowVisibilityFocusState, useWindowVisibilityFocus } from "../use-window-visibility-focus.js";
|
|
26
29
|
import "../index2.js";
|
|
27
|
-
export { CONVERSATION_AUTO_SEEN_DELAY_MS, ConversationItem, ConversationLifecycleState, ConversationPreviewAssignedAgent, ConversationPreviewLastMessage, ConversationPreviewTypingParticipant, ConversationPreviewTypingState, ConversationTimelineTypingParticipant, ConversationTypingParticipant, CreateConversationVariables, GroupedMessage, SendMessageOptions, SendMessageResult, TimelineEventItem, TimelineToolItem, 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, UseVisitorReturn, WindowVisibilityFocusState, useClient, useClientQuery, useComposerRefocus, useConversation, useConversationAutoSeen, useConversationHistoryPage, useConversationLifecycle, useConversationPage, useConversationPreview, useConversationSeen, useConversationTimeline, useConversationTimelineItems, useConversationTyping, useConversations, useCreateConversation, useDebouncedConversationSeen, useDefaultMessages, useGroupedMessages, useHomePage, useMessageComposer, useMultimodalInput, useRealtimeSupport, useScrollMask, useSendMessage, useVisitor, useWindowVisibilityFocus };
|
|
30
|
+
export { CONVERSATION_AUTO_SEEN_DELAY_MS, ConversationItem, ConversationLifecycleState, ConversationPreviewAssignedAgent, ConversationPreviewLastMessage, ConversationPreviewTypingParticipant, ConversationPreviewTypingState, ConversationTimelineTypingParticipant, ConversationTypingParticipant, CreateConversationVariables, GroupedMessage, SendMessageOptions, SendMessageResult, TimelineEventItem, TimelineToolItem, 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, UseVisitorReturn, 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 };
|
package/index.d.ts
CHANGED
|
@@ -18,9 +18,12 @@ import { UseConversationsOptions, UseConversationsResult, useConversations } fro
|
|
|
18
18
|
import { CreateConversationVariables, UseCreateConversationOptions, UseCreateConversationResult, useCreateConversation } from "./use-create-conversation.js";
|
|
19
19
|
import { UseHomePageOptions, UseHomePageReturn, useHomePage } from "./use-home-page.js";
|
|
20
20
|
import { UseMessageComposerOptions, UseMessageComposerReturn, useMessageComposer } from "./use-message-composer.js";
|
|
21
|
+
import { useNewMessageSound } from "./use-new-message-sound.js";
|
|
21
22
|
import { UseRealtimeSupportOptions, UseRealtimeSupportResult, useRealtimeSupport } from "./use-realtime-support.js";
|
|
22
23
|
import { UseScrollMaskOptions, UseScrollMaskReturn, useScrollMask } from "./use-scroll-mask.js";
|
|
23
24
|
import { SendMessageOptions, SendMessageResult, UseSendMessageOptions, UseSendMessageResult, useSendMessage } from "./use-send-message.js";
|
|
25
|
+
import { UseSoundEffectOptions, UseSoundEffectReturn, useSoundEffect } from "./use-sound-effect.js";
|
|
26
|
+
import { useTypingSound } from "./use-typing-sound.js";
|
|
24
27
|
import { UseVisitorReturn, useVisitor } from "./use-visitor.js";
|
|
25
28
|
import { WindowVisibilityFocusState, useWindowVisibilityFocus } from "./use-window-visibility-focus.js";
|
|
26
29
|
import "./hooks/index.js";
|
|
@@ -35,9 +38,7 @@ import { SupportBubble } from "./bubble.js";
|
|
|
35
38
|
import { Button } from "./button.js";
|
|
36
39
|
import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "./conversation-timeline.js";
|
|
37
40
|
import { FileInput, MultimodalInput, SupportInput } from "./multimodal-input.js";
|
|
38
|
-
import {
|
|
39
|
-
import { PageRegistryProvider, usePageRegistry, useRegisterPage } from "./page-registry.js";
|
|
40
|
-
import { Router, RouterProps } from "./router.js";
|
|
41
|
+
import { PageDefinition, Router, RouterProps } from "./router.js";
|
|
41
42
|
import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "./timeline-item.js";
|
|
42
43
|
import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "./timeline-item-group.js";
|
|
43
44
|
import { SupportWindow } from "./window.js";
|
|
@@ -59,4 +60,4 @@ import { shouldDisplayConversation } from "./conversation.js";
|
|
|
59
60
|
import { PENDING_CONVERSATION_ID, generateShortPrimaryId } from "./id.js";
|
|
60
61
|
import { useRenderElement } from "./use-render-element.js";
|
|
61
62
|
import "./utils/index.js";
|
|
62
|
-
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,
|
|
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 };
|
package/index2.d.ts
CHANGED
|
@@ -18,8 +18,11 @@ import { UseConversationsOptions, UseConversationsResult, useConversations } fro
|
|
|
18
18
|
import { CreateConversationVariables, UseCreateConversationOptions, UseCreateConversationResult, useCreateConversation } from "./use-create-conversation.js";
|
|
19
19
|
import { UseHomePageOptions, UseHomePageReturn, useHomePage } from "./use-home-page.js";
|
|
20
20
|
import { UseMessageComposerOptions, UseMessageComposerReturn, useMessageComposer } from "./use-message-composer.js";
|
|
21
|
+
import { useNewMessageSound } from "./use-new-message-sound.js";
|
|
21
22
|
import { UseRealtimeSupportOptions, UseRealtimeSupportResult, useRealtimeSupport } from "./use-realtime-support.js";
|
|
22
23
|
import { UseScrollMaskOptions, UseScrollMaskReturn, useScrollMask } from "./use-scroll-mask.js";
|
|
23
24
|
import { SendMessageOptions, SendMessageResult, UseSendMessageOptions, UseSendMessageResult, useSendMessage } from "./use-send-message.js";
|
|
25
|
+
import { UseSoundEffectOptions, UseSoundEffectReturn, useSoundEffect } from "./use-sound-effect.js";
|
|
26
|
+
import { useTypingSound } from "./use-typing-sound.js";
|
|
24
27
|
import { UseVisitorReturn, useVisitor } from "./use-visitor.js";
|
|
25
28
|
import { WindowVisibilityFocusState, useWindowVisibilityFocus } from "./use-window-visibility-focus.js";
|
package/index2.parts.d.ts
CHANGED
|
@@ -8,9 +8,7 @@ import { SupportBubble } from "./bubble.js";
|
|
|
8
8
|
import { Button } from "./button.js";
|
|
9
9
|
import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "./conversation-timeline.js";
|
|
10
10
|
import { FileInput, MultimodalInput, SupportInput } from "./multimodal-input.js";
|
|
11
|
-
import {
|
|
12
|
-
import { PageRegistryProvider, usePageRegistry, useRegisterPage } from "./page-registry.js";
|
|
13
|
-
import { Router, RouterProps } from "./router.js";
|
|
11
|
+
import { PageDefinition, Router, RouterProps } from "./router.js";
|
|
14
12
|
import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "./timeline-item.js";
|
|
15
13
|
import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "./timeline-item-group.js";
|
|
16
14
|
import { SupportWindow } from "./window.js";
|
package/index4.d.ts
CHANGED
|
@@ -7,9 +7,7 @@ import { SupportBubble } from "./bubble.js";
|
|
|
7
7
|
import { Button } from "./button.js";
|
|
8
8
|
import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "./conversation-timeline.js";
|
|
9
9
|
import { FileInput, MultimodalInput, SupportInput } from "./multimodal-input.js";
|
|
10
|
-
import {
|
|
11
|
-
import { PageRegistryProvider, usePageRegistry, useRegisterPage } from "./page-registry.js";
|
|
12
|
-
import { Router, RouterProps } from "./router.js";
|
|
10
|
+
import { PageDefinition, Router, RouterProps } from "./router.js";
|
|
13
11
|
import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "./timeline-item.js";
|
|
14
12
|
import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "./timeline-item-group.js";
|
|
15
13
|
import { SupportWindow } from "./window.js";
|
package/index7.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SupportLocale, SupportTextContentOverrides } from "./keys.js";
|
|
2
|
-
import {
|
|
3
|
-
import "./index4.js";
|
|
2
|
+
import { CustomPage } from "./router2.js";
|
|
4
3
|
import "./index6.js";
|
|
5
4
|
import { BubbleSlotProps, ContainerSlotProps, RouterSlotProps } from "./types.js";
|
|
6
5
|
import "./button2.js";
|
|
@@ -30,6 +29,7 @@ type SupportProps<Locale extends string = SupportLocale> = {
|
|
|
30
29
|
bubble?: string;
|
|
31
30
|
container?: string;
|
|
32
31
|
};
|
|
32
|
+
customPages?: CustomPage[];
|
|
33
33
|
children?: React.ReactNode;
|
|
34
34
|
};
|
|
35
35
|
/**
|
|
@@ -40,10 +40,14 @@ type SupportProps<Locale extends string = SupportLocale> = {
|
|
|
40
40
|
* <Support />
|
|
41
41
|
*
|
|
42
42
|
* @example
|
|
43
|
-
* // With customization
|
|
44
|
-
* <Support
|
|
45
|
-
*
|
|
46
|
-
*
|
|
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
|
+
* />
|
|
47
51
|
*/
|
|
48
52
|
declare function Support<Locale extends string = SupportLocale>({
|
|
49
53
|
className,
|
|
@@ -58,6 +62,7 @@ declare function Support<Locale extends string = SupportLocale>({
|
|
|
58
62
|
theme,
|
|
59
63
|
slots,
|
|
60
64
|
classNames,
|
|
65
|
+
customPages,
|
|
61
66
|
children
|
|
62
67
|
}: SupportProps<Locale>): ReactElement | null;
|
|
63
68
|
//#endregion
|
package/index7.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index7.d.ts","names":[],"sources":["../../react/src/support/index.tsx"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index7.d.ts","names":[],"sources":["../../react/src/support/index.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;KAmBY,qCAAqC;;;;EAArC,WAAA,CAAA,EAAA,OAAY,GAAA,UAAA;EAAyB,YAAA,CAAA,EAAA,MAAA,EAAA;EAO9B,eAAA,CAAA,EAAA,cAAA,EAAA;EAET,WAAA,CAAA,EAAA,OAAA;EAC6B,MAAA,CAAA,EAD7B,MAC6B;EAA5B,OAAA,CAAA,EAAA,2BAAA,CAA4B,MAA5B,CAAA;EAOoB,KAAA,CAAA,EAAA,OAAA,GAAA,MAAA;EAApB,KAAM,CAAA,EAAA;IACiB,MAAA,CAAA,EADvB,KAAA,CAAM,aACiB,CADH,eACG,CAAA;IAAd,SAAA,CAAA,EAAN,KAAA,CAAM,aAAA,CAAc,kBAAd,CAAA;IACW,MAAA,CAAA,EAApB,KAAA,CAAM,aAAc,CAAA,eAAA,CAAA;EAApB,CAAA;EAWI,UAAA,CAAA,EAAA;IAEG,IAAA,CAAA,EAAA,MAAA;IAAS,MAAA,CAAA,EAAA,MAAA;IAoBX,SAAO,CAAA,EAAA,MAAA;EAAyB,CAAA;EAC/C,WAAA,CAAA,EAvBc,UAuBd,EAAA;EACA,QAAA,CAAA,EAtBW,KAAA,CAAM,SAsBjB;CACA;;;;;;;;;;;;;;;;;;iBAHe,gCAAgC;;;;;;;;;;;;;;;GAe7C,aAAa,UAAU"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cossistant/next",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.22",
|
|
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,13 +91,13 @@
|
|
|
91
91
|
"access": "public"
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
|
-
"@cossistant/react": "0.0.
|
|
94
|
+
"@cossistant/react": "0.0.22",
|
|
95
95
|
"tailwindcss": "^4.1.13"
|
|
96
96
|
},
|
|
97
97
|
"peerDependencies": {
|
|
98
98
|
"react": ">=18 <20",
|
|
99
99
|
"react-dom": ">=18 <20",
|
|
100
|
-
"next": ">=13.5.2 || ^14.0.0 || ^15.0.0"
|
|
100
|
+
"next": ">=13.5.2 || ^14.0.0 || ^15.0.0 || ^16.0.0"
|
|
101
101
|
},
|
|
102
102
|
"peerDependenciesMeta": {
|
|
103
103
|
"@types/react": {
|
package/primitives/index.d.ts
CHANGED
|
@@ -7,11 +7,9 @@ import { SupportBubble } from "../bubble.js";
|
|
|
7
7
|
import { Button } from "../button.js";
|
|
8
8
|
import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "../conversation-timeline.js";
|
|
9
9
|
import { FileInput, MultimodalInput, SupportInput } from "../multimodal-input.js";
|
|
10
|
-
import {
|
|
11
|
-
import { PageRegistryProvider, usePageRegistry, useRegisterPage } from "../page-registry.js";
|
|
12
|
-
import { Router, RouterProps } from "../router.js";
|
|
10
|
+
import { PageDefinition, Router, RouterProps } from "../router.js";
|
|
13
11
|
import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "../timeline-item.js";
|
|
14
12
|
import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "../timeline-item-group.js";
|
|
15
13
|
import { SupportWindow } from "../window.js";
|
|
16
14
|
import "../index4.js";
|
|
17
|
-
export { Avatar, AvatarFallback, AvatarImage, SupportBubble as Bubble, Button, SupportConfig as Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, SupportInput as Input, MultimodalInput,
|
|
15
|
+
export { Avatar, AvatarFallback, AvatarImage, SupportBubble as Bubble, Button, SupportConfig as Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, SupportInput as Input, MultimodalInput, PageDefinition, Router, RouterProps, TimelineItem, TimelineItemContent, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemTimestamp, TypingIndicator, TypingIndicatorProps, TypingParticipant, TypingParticipantType, SupportWindow as Window };
|
package/router.d.ts
CHANGED
|
@@ -1,35 +1,33 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
|
|
3
3
|
//#region ../react/src/primitives/router.d.ts
|
|
4
|
+
type PageDefinition<K extends keyof RouteRegistry = keyof RouteRegistry> = {
|
|
5
|
+
name: K;
|
|
6
|
+
component: React.ComponentType<{
|
|
7
|
+
params?: RouteRegistry[K];
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
4
10
|
type RouterProps = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
page: string;
|
|
9
|
-
/**
|
|
10
|
-
* Params to pass to the page component
|
|
11
|
-
*/
|
|
12
|
-
params?: unknown;
|
|
13
|
-
/**
|
|
14
|
-
* Fallback component when page is not found
|
|
15
|
-
*/
|
|
11
|
+
page: keyof RouteRegistry;
|
|
12
|
+
params?: RouteRegistry[keyof RouteRegistry];
|
|
13
|
+
pages: PageDefinition[];
|
|
16
14
|
fallback?: React.ComponentType<{
|
|
17
15
|
params?: unknown;
|
|
18
16
|
}>;
|
|
19
|
-
/**
|
|
20
|
-
* Children (Page components for registration)
|
|
21
|
-
*/
|
|
22
|
-
children?: React.ReactNode;
|
|
23
17
|
};
|
|
24
18
|
/**
|
|
25
|
-
*
|
|
19
|
+
* Type-safe router that renders pages based on current page name.
|
|
20
|
+
* Pages are matched synchronously without effects or registries.
|
|
26
21
|
*
|
|
27
22
|
* @example
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
23
|
+
* const pages = [
|
|
24
|
+
* { name: "HOME", component: HomePage },
|
|
25
|
+
* { name: "SETTINGS", component: SettingsPage }
|
|
26
|
+
* ];
|
|
27
|
+
*
|
|
28
|
+
* <Router page={currentPage} params={params} pages={pages} fallback={NotFoundPage} />
|
|
31
29
|
*/
|
|
32
30
|
declare const Router: React.FC<RouterProps>;
|
|
33
31
|
//#endregion
|
|
34
|
-
export { Router, RouterProps };
|
|
32
|
+
export { PageDefinition, Router, RouterProps };
|
|
35
33
|
//# sourceMappingURL=router.d.ts.map
|
package/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","names":[],"sources":["../../react/src/primitives/router.tsx"],"sourcesContent":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"router.d.ts","names":[],"sources":["../../react/src/primitives/router.tsx"],"sourcesContent":[],"mappings":";;;KAIY,+BACK,sBAAsB;EAD3B,IAAA,EAGL,CAHK;EACK,SAAA,EAGL,KAAA,CAAM,aAHD,CAAA;IAAsB,MAAA,CAAA,EAGI,aAHJ,CAGkB,CAHlB,CAAA;EAEhC,CAAA,CAAA;CACoC;AAAc,KAI7C,WAAA,GAJ6C;EAA7C,IAAM,EAAA,MAKL,aALK;EAAa,MAAA,CAAA,EAMrB,aANqB,CAAA,MAMD,aANC,CAAA;EAInB,KAAA,EAGJ,cAHe,EAAA;EACV,QAAA,CAAA,EAGD,KAAA,CAAM,aAHL,CAAA;IACH,MAAA,CAAA,EAAA,OAAA;EAAoB,CAAA,CAAA;CACtB;;;AAgBR;;;;;;;;;;cAAa,QAAQ,KAAA,CAAM,GAAG"}
|
package/router2.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region ../react/src/support/router.d.ts
|
|
4
|
+
type CustomPage<K extends keyof RouteRegistry = keyof RouteRegistry> = {
|
|
5
|
+
name: K;
|
|
6
|
+
component: React.ComponentType<{
|
|
7
|
+
params?: RouteRegistry[K];
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { CustomPage };
|
|
12
|
+
//# sourceMappingURL=router2.d.ts.map
|
package/router2.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router2.d.ts","names":[],"sources":["../../react/src/support/router.tsx"],"sourcesContent":[],"mappings":";;;KAWY,2BAA2B,sBAAsB;EAAjD,IAAA,EACL,CADK;EAA2B,SAAA,EAE3B,KAAA,CAAM,aAFqB,CAAA;IAAsB,MAAA,CAAA,EAElB,aAFkB,CAEJ,CAFI,CAAA;EACtD,CAAA,CAAA;CACoC"}
|
package/support-config2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support-config2.d.ts","names":[],"sources":["../../react/src/support-config.tsx"],"sourcesContent":[],"mappings":";;;KAMY,kBAAA;EAAA,eAAA,CAAA,EACO,
|
|
1
|
+
{"version":3,"file":"support-config2.d.ts","names":[],"sources":["../../react/src/support-config.tsx"],"sourcesContent":[],"mappings":";;;KAMY,kBAAA;EAAA,eAAA,CAAA,EACO,cAAA,EAAA;EAON,YAAA,CAAA,EAAA,MAoBZ,EAAA;;;;;AAjByC,cAH7B,aAG6B,EAAA;;;;KAAvC,qBAAqB,OAAA,CAAM"}
|
|
@@ -35,7 +35,7 @@ type UseConversationAutoSeenOptions = {
|
|
|
35
35
|
/**
|
|
36
36
|
* Automatically marks timeline items as seen when:
|
|
37
37
|
* - A new timeline item arrives from someone else
|
|
38
|
-
* - The page is visible
|
|
38
|
+
* - The page is visible
|
|
39
39
|
* - The support widget is open/visible
|
|
40
40
|
* - The visitor is the current user
|
|
41
41
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-conversation-seen.d.ts","names":[],"sources":["../../react/src/hooks/use-conversation-seen.ts"],"sourcesContent":[],"mappings":";AAAkE,KAI7D,0BAAA,GAA0B;EAgBf,WAAA,CAAA,EAfD,gBAeoB,EAAA;
|
|
1
|
+
{"version":3,"file":"use-conversation-seen.d.ts","names":[],"sources":["../../react/src/hooks/use-conversation-seen.ts"],"sourcesContent":[],"mappings":";AAAkE,KAI7D,0BAAA,GAA0B;EAgBf,WAAA,CAAA,EAfD,gBAeoB,EAAA;AA8DnC,CAAA;;;;;iBA9DgB,mBAAA,sDAEN,6BACP;;;;;;;iBA2Da,4BAAA,sDAEN,6CAEP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-grouped-messages.d.ts","names":[],"sources":["../../react/src/hooks/private/use-grouped-messages.ts"],"sourcesContent":[],"mappings":";;AASQ,KAJI,cAAA,GAIJ;EAGW,IAAA,EAAA,eAAA;EACD,QAAA,EAAA,MAAA;EAAI,UAAA,EALT,UAKS;EAGV,KAAA,EAPJ,YAOI,EAAiB;EAMjB,cAAA,EAAA,MAAgB;EAOhB,aAAA,EAAA,MAAgB;EACzB,gBAAA,EAlBgB,IAkBhB;EACA,eAAA,EAlBe,IAkBf;CACA;AAAgB,KAhBP,iBAAA,GAgBO;EAEP,IAAA,EAAA,gBAAA;EACJ,IAAA,EAjBD,YAiBC;EACI,SAAA,EAjBA,IAiBA;CAEE;AAAU,KAhBZ,gBAAA,GAgBY;EAGZ,IAAA,EAAA,eAAA;
|
|
1
|
+
{"version":3,"file":"use-grouped-messages.d.ts","names":[],"sources":["../../react/src/hooks/private/use-grouped-messages.ts"],"sourcesContent":[],"mappings":";;AASQ,KAJI,cAAA,GAIJ;EAGW,IAAA,EAAA,eAAA;EACD,QAAA,EAAA,MAAA;EAAI,UAAA,EALT,UAKS;EAGV,KAAA,EAPJ,YAOI,EAAiB;EAMjB,cAAA,EAAA,MAAgB;EAOhB,aAAA,EAAA,MAAgB;EACzB,gBAAA,EAlBgB,IAkBhB;EACA,eAAA,EAlBe,IAkBf;CACA;AAAgB,KAhBP,iBAAA,GAgBO;EAEP,IAAA,EAAA,gBAAA;EACJ,IAAA,EAjBD,YAiBC;EACI,SAAA,EAjBA,IAiBA;CAEE;AAAU,KAhBZ,gBAAA,GAgBY;EAGZ,IAAA,EAAA,eAAA;EA+LC,IAAA,EAhNN,YAgNM;EAAsB,IAAA,EAAA,MAAA,GAAA,IAAA;EAAA,SAAA,EA9MvB,IA8MuB;CAAA;AAAA,KA3MvB,gBAAA,GACT,cA0MgC,GAzMhC,iBAyMgC,GAxMhC,gBAwMgC;AAKhC,KA3MS,yBAAA,GA2MT;SA1MK;aACI;;eAEE;;KAGF,uBAAA,GAA0B;;;;;;;cA+LzB;;;;;GAKV"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region ../react/src/hooks/use-new-message-sound.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Hook to play a sound when a new message arrives.
|
|
4
|
+
*
|
|
5
|
+
* @param options - Optional configuration for volume and playback speed
|
|
6
|
+
* @returns Function to play the new message sound
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const playNewMessageSound = useNewMessageSound({ volume: 0.8, playbackRate: 1.1 });
|
|
10
|
+
*
|
|
11
|
+
* useEffect(() => {
|
|
12
|
+
* if (hasNewMessage) {
|
|
13
|
+
* playNewMessageSound();
|
|
14
|
+
* }
|
|
15
|
+
* }, [hasNewMessage]);
|
|
16
|
+
*/
|
|
17
|
+
declare function useNewMessageSound(options?: {
|
|
18
|
+
volume?: number;
|
|
19
|
+
playbackRate?: number;
|
|
20
|
+
}): () => void;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { useNewMessageSound };
|
|
23
|
+
//# sourceMappingURL=use-new-message-sound.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//#region ../react/src/hooks/use-sound-effect.d.ts
|
|
2
|
+
type UseSoundEffectOptions = {
|
|
3
|
+
loop?: boolean;
|
|
4
|
+
volume?: number;
|
|
5
|
+
playbackRate?: number;
|
|
6
|
+
};
|
|
7
|
+
type UseSoundEffectReturn = {
|
|
8
|
+
play: () => void;
|
|
9
|
+
stop: () => void;
|
|
10
|
+
isPlaying: boolean;
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
error: Error | null;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Hook to play sound effects using the Web Audio API.
|
|
16
|
+
*
|
|
17
|
+
* @param soundPath - Path to the sound file (relative to public directory or absolute URL)
|
|
18
|
+
* @param options - Configuration options for the sound
|
|
19
|
+
* @returns Object with play, stop functions and state
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const { play, stop, isPlaying } = useSoundEffect('/sounds/notification.wav', {
|
|
23
|
+
* loop: false,
|
|
24
|
+
* volume: 0.5
|
|
25
|
+
* });
|
|
26
|
+
*/
|
|
27
|
+
declare function useSoundEffect(soundPath: string, options?: UseSoundEffectOptions): UseSoundEffectReturn;
|
|
28
|
+
//#endregion
|
|
29
|
+
export { UseSoundEffectOptions, UseSoundEffectReturn, useSoundEffect };
|
|
30
|
+
//# sourceMappingURL=use-sound-effect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-sound-effect.d.ts","names":[],"sources":["../../react/src/hooks/use-sound-effect.ts"],"sourcesContent":[],"mappings":";KAEY,qBAAA;EAAA,IAAA,CAAA,EAAA,OAAA;EAMA,MAAA,CAAA,EAAA,MAAA;EAqBI,YAAA,CAAA,EAAA,MAAc;;KArBlB,oBAAA;;;;;SAKJ;;;;;;;;;;;;;;;iBAgBQ,cAAA,8BAEN,wBACP"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region ../react/src/hooks/use-typing-sound.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Hook to play a looping typing sound while someone is typing.
|
|
4
|
+
*
|
|
5
|
+
* @param isTyping - Whether someone is currently typing
|
|
6
|
+
* @param options - Optional configuration for volume and playback speed
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const { isTyping } = useTypingIndicator();
|
|
10
|
+
* useTypingSound(isTyping, { volume: 1.0, playbackRate: 1.2 });
|
|
11
|
+
*/
|
|
12
|
+
declare function useTypingSound(isTyping: boolean, options?: {
|
|
13
|
+
volume?: number;
|
|
14
|
+
playbackRate?: number;
|
|
15
|
+
}): void;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { useTypingSound };
|
|
18
|
+
//# sourceMappingURL=use-typing-sound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-typing-sound.d.ts","names":[],"sources":["../../react/src/hooks/use-typing-sound.ts"],"sourcesContent":[],"mappings":";;AAiBA;;;;;;;;;iBAAgB,cAAA"}
|
package/page-registry.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
|
|
3
|
-
//#region ../react/src/primitives/page-registry.d.ts
|
|
4
|
-
type PageComponent<P = unknown> = React.ComponentType<{
|
|
5
|
-
params?: P;
|
|
6
|
-
}>;
|
|
7
|
-
type PageRegistry = Map<string, PageComponent>;
|
|
8
|
-
/**
|
|
9
|
-
* Context provider for declarative page registration.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* <PageRegistryProvider>
|
|
13
|
-
* <Page name="HOME" component={HomePage} />
|
|
14
|
-
* <Router page={currentPage} />
|
|
15
|
-
* </PageRegistryProvider>
|
|
16
|
-
*/
|
|
17
|
-
declare const PageRegistryProvider: React.FC<{
|
|
18
|
-
children: React.ReactNode;
|
|
19
|
-
}>;
|
|
20
|
-
/**
|
|
21
|
-
* Access the page registry (used internally by Router and Page).
|
|
22
|
-
*/
|
|
23
|
-
declare const usePageRegistry: () => PageRegistry;
|
|
24
|
-
/**
|
|
25
|
-
* Register a page in the registry (used internally by Page component).
|
|
26
|
-
*/
|
|
27
|
-
declare const useRegisterPage: (name: string, component: PageComponent) => void;
|
|
28
|
-
//#endregion
|
|
29
|
-
export { PageRegistryProvider, usePageRegistry, useRegisterPage };
|
|
30
|
-
//# sourceMappingURL=page-registry.d.ts.map
|
package/page-registry.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"page-registry.d.ts","names":[],"sources":["../../react/src/primitives/page-registry.tsx"],"sourcesContent":[],"mappings":";;;KAEK,6BAA6B,KAAA,CAAM;WAAyB;AAFC,CAAA,CAAA;AAEb,KAEhD,YAAA,GAAe,GAAH,CAAA,MAAA,EAAe,aAAA,CAAA;AAahC;AAeA;AAKA;;;;;;;cApBa,sBAAsB,KAAA,CAAM;YAAe,KAAA,CAAM;;;;;cAejD,uBAAe;;;;cAKf,2CAA4C"}
|
package/page.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
//#region ../react/src/primitives/page.d.ts
|
|
2
|
-
type PageProps<Params = unknown> = {
|
|
3
|
-
name: string;
|
|
4
|
-
component: React.ComponentType<{
|
|
5
|
-
params?: Params;
|
|
6
|
-
}>;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Declaratively register a page component.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* <Page name="HOME" component={HomePage} />
|
|
13
|
-
* <Page name="SETTINGS" component={SettingsPage} />
|
|
14
|
-
*/
|
|
15
|
-
declare function Page<Params = unknown>({
|
|
16
|
-
name,
|
|
17
|
-
component
|
|
18
|
-
}: PageProps<Params>): null;
|
|
19
|
-
//#endregion
|
|
20
|
-
export { Page, PageProps };
|
|
21
|
-
//# sourceMappingURL=page.d.ts.map
|
package/page.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","names":[],"sources":["../../react/src/primitives/page.tsx"],"sourcesContent":[],"mappings":";KAEY;EAAA,IAAA,EAAA,MAAS;EAYL,SAAI,EAVR,KAAA,CAAM,aAUE,CAAA;IACnB,MAAA,CAAA,EAX0C,MAW1C;EACA,CAAA,CAAA;CACY;;;;;;;;iBAHG;;;GAGb,UAAU"}
|