@cossistant/next 0.0.19 → 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 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
- yarn add @cossistant/next
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 { Page, PageProps } from "./page.js";
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, Page, PageProps, PageRegistryProvider, 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, 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, usePageRegistry, useRealtime, useRealtimeConnection, useRealtimeSupport, useRegisterPage, useRenderElement, useScrollMask, useSendMessage, useSupport, useSupportConfig, useSupportStore, useVisitor, useWebSocket, useWindowVisibilityFocus };
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 { Page, PageProps } from "./page.js";
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 { Page, PageProps } from "./page.js";
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 { Page, PageProps } from "./page.js";
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 theme="dark" classNames={{ bubble: "bg-purple-600" }}>
45
- * <Page name="FAQ" component={FAQPage} />
46
- * </Support>
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":";;;;;;;;;;;KAmBY,qCAAqC;;;;;;EAArC,eAAY,CAAA,EAOL,cAPK,EAAA;EAAyB,WAAA,CAAA,EAAA,OAAA;EAO9B,MAAA,CAAA,EAET,MAFS;EAET,OAAA,CAAA,EACC,2BADD,CAC6B,MAD7B,CAAA;EAC6B,KAAA,CAAA,EAAA,OAAA,GAAA,MAAA;EAA5B,KAAA,CAAA,EAAA;IAOoB,MAAA,CAAA,EAApB,KAAA,CAAM,aAAc,CAAA,eAAA,CAAA;IAAd,SAAA,CAAA,EACH,KAAA,CAAM,aADH,CACiB,kBADjB,CAAA;IACiB,MAAA,CAAA,EACvB,KAAA,CAAM,aADiB,CACH,eADG,CAAA;EAApB,CAAA;EACiB,UAAA,CAAA,EAAA;IAAd,IAAA,CAAA,EAAA,MAAA;IAWC,MAAA,CAAA,EAAA,MAAA;IAAS,SAAA,CAAA,EAAA,MAAA;EAgBX,CAAA;EAAgC,QAAA,CAAA,EAhBpC,KAAA,CAAM,SAgB8B;CAC/C;;;;;;;;;;;;;;AAaE,iBAda,OAcb,CAAA,eAAA,MAAA,GAd6C,aAc7C,CAAA,CAAA;EAAA,SAAA;EAAA,QAAA;EAAA,KAAA;EAAA,WAAA;EAAA,YAAA;EAAA,eAAA;EAAA,WAAA;EAAA,MAAA;EAAA,OAAA;EAAA,KAAA;EAAA,KAAA;EAAA,UAAA;EAAA;AAAA,CAAA,EAAA,YAAA,CAAa,MAAb,CAAA,CAAA,EAAuB,YAAvB,GAAA,IAAA"}
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.19",
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.19",
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": {
@@ -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 { Page, PageProps } from "../page.js";
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, Page, PageProps, PageRegistryProvider, Router, RouterProps, TimelineItem, TimelineItemContent, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemTimestamp, TypingIndicator, TypingIndicatorProps, TypingParticipant, TypingParticipantType, SupportWindow as Window, usePageRegistry, useRegisterPage };
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/provider3.d.ts CHANGED
@@ -42,6 +42,7 @@ type RealtimeContextValue = RealtimeConnectionState & {
42
42
  };
43
43
  /**
44
44
  * Provides websocket connectivity and heartbeating logic for realtime events.
45
+ * Handles SSR by only initializing the WebSocket connection in the browser.
45
46
  */
46
47
  declare function RealtimeProvider({
47
48
  children,
@@ -1 +1 @@
1
- {"version":3,"file":"provider3.d.ts","names":[],"sources":["../../react/src/realtime/provider.tsx"],"sourcesContent":[],"mappings":";;;KAuBK,gBAAA,WAA2B;AAfD,KA8C1B,iBAAA,GA/BgB;EA+BhB,IAAA,EAAA,SAAA;EAOA,SAAA,EAAA,MAAA,GAAiB,IAAA;EAOjB,SAAA,CAAA,EAAA,MAAA,GAAkB,IAAA;EAWlB,SAAA,CAAA,EAAA,MAAA,GAAA,IAAqB;CACf;KAnBN,iBAAA,GAqBE;EAIY,IAAA,EAAA,SAAA;EAAK,YAAA,EAAA,MAAA,GAAA,IAAA;EAGnB,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAGG,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;CACO;KAzBV,kBAAA,GAAqB,iBA2BJ,GA3BwB,iBA2BxB;KAhBjB,qBAAA,GAiBO;EAAgB,QAAA,EAhBjB,KAAA,CAAM,SAgBW;EAKvB,KAAA,CAAA,EAAA,MAAA;EA8QW,IAAA,EAjST,kBAiSyB,GAAA,IAAA;EAC/B,WAAA,CAAA,EAAA,OAAA;EACA,SAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACA,YAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACA,OAAA,CAAA,EAAA,CAAA,KAAA,EAjSkB,KAiSlB,EAAA,GAAA,IAAA;CACA;KA/RI,uBAAA,GAgSJ;EACA,WAAA,EAAA,OAAA;EACE,YAAA,EAAA,OAAA;EAAwB,KAAM,EA/RzB,KA+RyB,GAAA,IAAA;EAAY,IAAA,EAAA,CAAA,KAAA,EA9R9B,gBA8R8B,EAAA,GAAA,IAAA;EA6S7B,OAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAqB,GAAA,IAAA;uBAzkBf;aACV;;;;KAKP,oBAAA,GAAuB;;;;;;;;iBA8QZ,gBAAA;;;;;;;;GAQb,wBAAwB,KAAA,CAAM;;;;iBA6SjB,qBAAA,CAAA,GAAyB"}
1
+ {"version":3,"file":"provider3.d.ts","names":[],"sources":["../../react/src/realtime/provider.tsx"],"sourcesContent":[],"mappings":";;;KAuBK,gBAAA,WAA2B;AAfD,KA8C1B,iBAAA,GA/BgB;EA+BhB,IAAA,EAAA,SAAA;EAOA,SAAA,EAAA,MAAA,GAAiB,IAAA;EAOjB,SAAA,CAAA,EAAA,MAAA,GAAkB,IAAA;EAWlB,SAAA,CAAA,EAAA,MAAA,GAAA,IAAqB;CACf;KAnBN,iBAAA,GAqBE;EAIY,IAAA,EAAA,SAAA;EAAK,YAAA,EAAA,MAAA,GAAA,IAAA;EAGnB,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAGG,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;CACO;KAzBV,kBAAA,GAAqB,iBA2BJ,GA3BwB,iBA2BxB;KAhBjB,qBAAA,GAiBO;EAAgB,QAAA,EAhBjB,KAAA,CAAM,SAgBW;EAKvB,KAAA,CAAA,EAAA,MAAA;EAilBW,IAAA,EApmBT,kBAomByB,GAAA,IAAA;EAC/B,WAAA,CAAA,EAAA,OAAA;EACA,SAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACA,YAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACA,OAAA,CAAA,EAAA,CAAA,KAAA,EApmBkB,KAomBlB,EAAA,GAAA,IAAA;CACA;KAlmBI,uBAAA,GAmmBJ;EACA,WAAA,EAAA,OAAA;EACE,YAAA,EAAA,OAAA;EAAwB,KAAM,EAlmBzB,KAkmByB,GAAA,IAAA;EAAY,IAAA,EAAA,CAAA,KAAA,EAjmB9B,gBAimB8B,EAAA,GAAA,IAAA;EA+D7B,OAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAqB,GAAA,IAAA;uBA9pBf;aACV;;;;KAKP,oBAAA,GAAuB;;;;;;;;;iBAilBZ,gBAAA;;;;;;;;GAQb,wBAAwB,KAAA,CAAM;;;;iBA+DjB,qBAAA,CAAA,GAAyB"}
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
- * Current page name to render
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
- * Router that renders registered pages based on current page name.
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
- * <Router page={currentPage} params={params} fallback={NotFoundPage}>
29
- * <Page name="HOME" component={HomePage} />
30
- * </Router>
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":";;;KAGY,WAAA;;AAAZ;AA8BA;;;;;;;;;aAhBY,KAAA,CAAM;;;;;;aAKN,KAAA,CAAM;;;;;;;;;;cAWL,QAAQ,KAAA,CAAM,GAAG"}
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
@@ -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"}
@@ -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/focused
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;AAwDnC,CAAA;;;;;iBAxDgB,mBAAA,sDAEN,6BACP;;;;;;;iBAqDa,4BAAA,sDAEN,6CAEP"}
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-conversation-timeline-items.d.ts","names":[],"sources":["../../react/src/hooks/use-conversation-timeline-items.ts"],"sourcesContent":[],"mappings":";;AA4BY,KARA,mCAAA,GAQkC;EAC7C,KAAA,CAAA,EAAA,MAAA;EAEQ,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAEM,OAAA,CAAA,EAAA,OAAA;EAAL,eAAA,CAAA,EAAA,MAAA,GAAA,KAAA;EACK,oBAAA,CAAA,EAAA,OAAA;CAAR;AAEJ,KARS,kCAAA,GACX,8BAOE,GAAA;EADoB,SAAA,EAAA,OAAA;EAAO,KAAA,EAJrB,KAIqB,GAAA,IAAA;EASd,OAAA,EAAA,CAAA,IAEN,CAFM,EAXN,IAWM,CAXD,mCAaL,EAAA,QAAA,GAAA,OAAA,CAAA,EACP,GAbI,OAaJ,CAbY,oCAasB,GAAA,SAAA,CAAA;uBAZd,QACpB;;;;;;iBAQa,4BAAA,sDAEN,sCACP"}
1
+ {"version":3,"file":"use-conversation-timeline-items.d.ts","names":[],"sources":["../../react/src/hooks/use-conversation-timeline-items.ts"],"sourcesContent":[],"mappings":";;AA4BY,KARA,mCAAA,GAQkC;EAC7C,KAAA,CAAA,EAAA,MAAA;EAEQ,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAEM,OAAA,CAAA,EAAA,OAAA;EAAL,eAAA,CAAA,EAAA,MAAA,GAAA,KAAA;EACK,oBAAA,CAAA,EAAA,OAAA;CAAR;AAEJ,KARS,kCAAA,GACX,8BAOE,GAAA;EADoB,SAAA,EAAA,OAAA;EAAO,KAAA,EAJrB,KAIqB,GAAA,IAAA;EASd,OAAA,EAAA,CAAA,IAEN,CAFM,EAXN,IAWM,CAXD,mCAaL,EAAA,QAAA,GAAA,OAAA,CAAA,EAAA,GAZH,OAaJ,CAbY,oCAasB,GAAA,SAAA,CAAA;uBAZd,QACpB;;;;;;iBAQa,4BAAA,sDAEN,sCACP"}
@@ -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;EAwNC,IAAA,EAzON,YAyOM;EAAsB,IAAA,EAAA,MAAA,GAAA,IAAA;EAAA,SAAA,EAvOvB,IAuOuB;CAAA;AAAA,KApOvB,gBAAA,GACT,cAmOgC,GAlOhC,iBAkOgC,GAjOhC,gBAiOgC;AAKhC,KApOS,yBAAA,GAoOT;SAnOK;aACI;;eAEE;;KAGF,uBAAA,GAA0B;;;;;;;cAwNzB;;;;;GAKV"}
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"}
@@ -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
@@ -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"}