@botpress/webchat 2.3.8 → 2.4.0-beta.2

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 (69) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +2 -1
  2. package/.storybook/main.ts +25 -0
  3. package/.storybook/preview.tsx +112 -0
  4. package/.turbo/turbo-build.log +10 -14
  5. package/dist/client/client.d.ts +33 -41
  6. package/dist/client/index.d.ts +2 -0
  7. package/dist/client/legacyClient.d.ts +55 -0
  8. package/dist/client/types.d.ts +2 -11
  9. package/dist/components/Block.d.ts +4 -2
  10. package/dist/components/CloseWindowButton.d.ts +7 -0
  11. package/dist/components/Composer/Composer.d.ts +13 -1
  12. package/dist/components/Container/Container.d.ts +9 -1
  13. package/dist/components/Header/Header.d.ts +5 -1
  14. package/dist/components/Loader/Loader.d.ts +5 -0
  15. package/dist/components/Loader/index.d.ts +1 -0
  16. package/dist/components/Marquee/Marquee.d.ts +7 -1
  17. package/dist/components/Message/Message.d.ts +10 -6
  18. package/dist/components/MessageList/MessageList.d.ts +13 -7
  19. package/dist/components/RestartConversationButton.d.ts +7 -0
  20. package/dist/components/Webchat.d.ts +29 -1
  21. package/dist/components/index.d.ts +1 -1
  22. package/dist/components/renderers/Audio/Audio.d.ts +4 -2
  23. package/dist/components/renderers/Button/Button.d.ts +1 -1
  24. package/dist/components/renderers/Carousel/Carousel.d.ts +4 -2
  25. package/dist/components/renderers/Dropdown/Dropdown.d.ts +1 -1
  26. package/dist/components/renderers/File/File.d.ts +4 -2
  27. package/dist/components/renderers/Image/Image.d.ts +4 -2
  28. package/dist/components/renderers/Location/Location.d.ts +4 -2
  29. package/dist/components/renderers/Video/Video.d.ts +4 -2
  30. package/dist/components/renderers/index.d.ts +1 -1
  31. package/dist/contexts/index.d.ts +0 -1
  32. package/dist/gen/signals/index.d.ts +4 -4
  33. package/dist/gen/signals/messageCreated.z.d.ts +4 -4
  34. package/dist/hooks/index.d.ts +2 -1
  35. package/dist/hooks/useIsTyping.d.ts +4 -0
  36. package/dist/hooks/useWebchatClient.d.ts +48 -0
  37. package/dist/index.d.ts +3 -3
  38. package/dist/index.js +22478 -23312
  39. package/dist/index.umd.cjs +126 -126
  40. package/dist/providers/StylesheetProvider.d.ts +4 -0
  41. package/dist/providers/index.d.ts +1 -1
  42. package/dist/stores/index.d.ts +3 -1
  43. package/dist/stores/messageHistoryStore.d.ts +20 -0
  44. package/dist/stores/messagesStore.d.ts +20 -0
  45. package/dist/stores/userStore.d.ts +31 -0
  46. package/dist/stores/webchatStore.d.ts +5 -53
  47. package/dist/stories/Messages/Audio.stories.d.ts +6 -0
  48. package/dist/stories/Messages/Bloc.stories.d.ts +6 -0
  49. package/dist/stories/Messages/Card.stories.d.ts +6 -0
  50. package/dist/stories/Messages/Carousel.stories.d.ts +6 -0
  51. package/dist/stories/Messages/Choice.stories.d.ts +6 -0
  52. package/dist/stories/Messages/Dropdown.stories.d.ts +6 -0
  53. package/dist/stories/Messages/File.stories.d.ts +6 -0
  54. package/dist/stories/Messages/Image.stories.d.ts +6 -0
  55. package/dist/stories/Messages/Location.stories.d.ts +6 -0
  56. package/dist/stories/Messages/Text.stories.d.ts +6 -0
  57. package/dist/stories/Messages/Video.stories.d.ts +6 -0
  58. package/dist/stories/index.d.ts +1 -0
  59. package/dist/style.css +1 -1
  60. package/dist/styles/classes.d.ts +3 -0
  61. package/dist/types/block-type.d.ts +21 -5
  62. package/dist/utils/message.d.ts +2 -2
  63. package/package.json +19 -2
  64. package/dist/components/CloseWindow.d.ts +0 -5
  65. package/dist/components/RestartConversation.d.ts +0 -5
  66. package/dist/contexts/WebchatContext.d.ts +0 -73
  67. package/dist/hooks/useWebchatStore.d.ts +0 -2
  68. package/dist/providers/WebchatProvider.d.ts +0 -4
  69. package/dist/stores/offlineStore.d.ts +0 -33
@@ -1,4 +1,6 @@
1
- export declare const Video: import("react").ForwardRefExoticComponent<import("../../../adapters/target").VideoMessage & Partial<Pick<import("../../..").MessageObject<import("../../../adapters/target").Message>, "direction" | "timestamp" | "sender"> & {
1
+ export declare const Video: import("react").ForwardRefExoticComponent<import("../../../adapters/target").VideoMessage & Pick<import("../../..").RichMessageObject<import("../../../adapters/target").Message>, "direction" | "timestamp" | "sender"> & {
2
2
  messageId: string;
3
+ sendMessage?: (payload: import("../../../adapters/webchat").Message) => void;
3
4
  metadata?: Record<string, any>;
4
- }> & import("react").RefAttributes<HTMLVideoElement>>;
5
+ isReadOnly?: boolean;
6
+ } & import("react").RefAttributes<HTMLVideoElement>>;
@@ -1,2 +1,2 @@
1
- import { Renderers } from '../../contexts';
1
+ import type { Renderers } from '../../types';
2
2
  export declare const renderers: Renderers;
@@ -1,3 +1,2 @@
1
1
  export * from './MessageContext';
2
2
  export * from './ModalContext';
3
- export * from './WebchatContext';
@@ -593,8 +593,8 @@ export declare const zod: {
593
593
  })[];
594
594
  };
595
595
  id: string;
596
- userId: string;
597
596
  conversationId: string;
597
+ userId: string;
598
598
  createdAt: string;
599
599
  }, {
600
600
  payload: {
@@ -703,8 +703,8 @@ export declare const zod: {
703
703
  })[];
704
704
  };
705
705
  id: string;
706
- userId: string;
707
706
  conversationId: string;
707
+ userId: string;
708
708
  createdAt: string;
709
709
  }>;
710
710
  }, "strip", import("zod").ZodTypeAny, {
@@ -816,8 +816,8 @@ export declare const zod: {
816
816
  })[];
817
817
  };
818
818
  id: string;
819
- userId: string;
820
819
  conversationId: string;
820
+ userId: string;
821
821
  createdAt: string;
822
822
  };
823
823
  }, {
@@ -929,8 +929,8 @@ export declare const zod: {
929
929
  })[];
930
930
  };
931
931
  id: string;
932
- userId: string;
933
932
  conversationId: string;
933
+ userId: string;
934
934
  createdAt: string;
935
935
  };
936
936
  }>;
@@ -586,8 +586,8 @@ declare const _default: z.ZodObject<{
586
586
  })[];
587
587
  };
588
588
  id: string;
589
- userId: string;
590
589
  conversationId: string;
590
+ userId: string;
591
591
  createdAt: string;
592
592
  }, {
593
593
  payload: {
@@ -696,8 +696,8 @@ declare const _default: z.ZodObject<{
696
696
  })[];
697
697
  };
698
698
  id: string;
699
- userId: string;
700
699
  conversationId: string;
700
+ userId: string;
701
701
  createdAt: string;
702
702
  }>;
703
703
  }, "strip", z.ZodTypeAny, {
@@ -809,8 +809,8 @@ declare const _default: z.ZodObject<{
809
809
  })[];
810
810
  };
811
811
  id: string;
812
- userId: string;
813
812
  conversationId: string;
813
+ userId: string;
814
814
  createdAt: string;
815
815
  };
816
816
  }, {
@@ -922,8 +922,8 @@ declare const _default: z.ZodObject<{
922
922
  })[];
923
923
  };
924
924
  id: string;
925
- userId: string;
926
925
  conversationId: string;
926
+ userId: string;
927
927
  createdAt: string;
928
928
  };
929
929
  }>;
@@ -1,4 +1,5 @@
1
1
  export * from './useClient';
2
2
  export * from './useImageSize';
3
+ export * from './useIsTyping';
3
4
  export * from './useRefresh';
4
- export * from './useWebchatStore';
5
+ export * from './useWebchatClient';
@@ -0,0 +1,4 @@
1
+ export declare function useIsTyping(): {
2
+ isTyping: boolean;
3
+ setIsTyping: (isTyping: boolean, timeout?: number) => () => void;
4
+ };
@@ -0,0 +1,48 @@
1
+ import type { Events, User } from '../client/types';
2
+ import { type FileType, type MessageObject } from '../types';
3
+ import { EventEmitter } from '../utils';
4
+ import type { Message as WebchatMessage } from '../adapters/webchat';
5
+ import { getClient } from '../client';
6
+ type UserResponse = Awaited<ReturnType<Awaited<ReturnType<typeof getClient>['getUser']>>>['user'];
7
+ type Props = {
8
+ userKey?: string;
9
+ conversationId?: string;
10
+ clientId: string;
11
+ apiUrl?: string;
12
+ sseTimeout?: number;
13
+ storageKey?: string;
14
+ };
15
+ type ScopedClient = {
16
+ sendMessage: (payload: WebchatMessage) => Promise<void>;
17
+ updateUser: (user: User) => Promise<User>;
18
+ sendEvent: (event: Record<string, any>) => Promise<void>;
19
+ uploadFile: (file: File) => Promise<{
20
+ fileUrl: string;
21
+ name: string;
22
+ type: FileType;
23
+ }>;
24
+ getUser: () => Promise<UserResponse>;
25
+ };
26
+ export type UseWebchatClientReturn = {
27
+ clientState: 'connected' | 'disconnected' | 'error';
28
+ on: EventEmitter<Events>['on'];
29
+ client: ScopedClient;
30
+ messages: MessageObject[];
31
+ conversationId: string;
32
+ newConversation: () => void;
33
+ isFetchingMessages: boolean;
34
+ user?: UserResponse;
35
+ isTyping: boolean;
36
+ } | {
37
+ clientState: 'connecting';
38
+ on: EventEmitter<Events>['on'];
39
+ client: undefined;
40
+ messages: MessageObject[];
41
+ conversationId: undefined;
42
+ newConversation: () => void;
43
+ isFetchingMessages: boolean;
44
+ user: undefined;
45
+ isTyping: undefined;
46
+ };
47
+ export declare function useWebchatClient({ apiUrl, clientId, storageKey, ...props }: Props): UseWebchatClientReturn;
48
+ export {};
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export * from './providers';
9
9
  export * from './types';
10
10
  export * from './schemas';
11
11
  export { webchatClasses } from './styles';
12
- export { type WebchatClient, type WebchatEvents } from './client';
13
- export { getClient } from './get-client';
14
- export { useClient, useWebchatStore } from './hooks';
12
+ export { type WebchatClient, type WebchatEvents, getClient, type Client } from './client';
13
+ export { useClient, useWebchatClient, type UseWebchatClientReturn } from './hooks';
15
14
  export { generateThemeStylesheet } from './utils';
15
+ export { useWebchatStore, getUseUserStore } from './stores';