@chatbotkit/react 1.18.3 → 1.19.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.
- package/dist/cjs/actions/complete.cjs +2 -3
- package/dist/cjs/actions/complete.d.ts +7 -7
- package/dist/cjs/components/AutoScroller.cjs +1 -2
- package/dist/cjs/components/AutoScroller.d.ts +3 -3
- package/dist/cjs/components/AutoTextarea.cjs +1 -2
- package/dist/cjs/components/ChatInput.cjs +1 -2
- package/dist/cjs/components/ChatInput.d.ts +1 -1
- package/dist/cjs/components/ChatMessage.cjs +1 -2
- package/dist/cjs/components/ChatMessage.d.ts +1 -1
- package/dist/cjs/components/ChatMessages.cjs +1 -2
- package/dist/cjs/components/ConversationManager.cjs +2 -2
- package/dist/cjs/components/ConversationManager.d.ts +3 -3
- package/dist/cjs/hooks/useConversationManager.cjs +1 -2
- package/dist/cjs/hooks/useConversationManager.d.ts +2 -2
- package/dist/cjs/hooks/useConversationManagerRemote.cjs +1 -2
- package/dist/cjs/hooks/useConversationManagerState.cjs +1 -2
- package/dist/cjs/hooks/useConversationManagerState.d.ts +5 -5
- package/dist/cjs/hooks/useConversationManagerStateReducer.cjs +3 -4
- package/dist/cjs/hooks/useConversationManagerStateReducer.d.ts +6 -6
- package/dist/cjs/hooks/useDOMQuerySelector.cjs +35 -14
- package/dist/cjs/hooks/useDOMQuerySelector.d.ts +4 -3
- package/dist/cjs/hooks/useDeps.cjs +11 -0
- package/dist/cjs/hooks/useDeps.d.ts +1 -0
- package/dist/cjs/hooks/useWidgetInstance.cjs +25 -5
- package/dist/cjs/hooks/useWidgetInstance.d.ts +3 -3
- package/dist/cjs/hooks/useWidgetInstanceFunctions.cjs +4 -4
- package/dist/cjs/hooks/useWidgetInstanceFunctions.d.ts +3 -2
- package/dist/cjs/hooks/useWidgetInstanceNotifications.cjs +4 -4
- package/dist/cjs/hooks/useWidgetInstanceNotifications.d.ts +3 -2
- package/dist/cjs/utils/it.cjs +1 -2
- package/dist/cjs/utils/object.cjs +1 -2
- package/dist/cjs/utils/stream.cjs +8 -4
- package/dist/cjs/utils/string.cjs +3 -4
- package/dist/cjs/utils/string.d.ts +2 -2
- package/dist/esm/actions/complete.d.ts +8 -8
- package/dist/esm/actions/complete.js +1 -1
- package/dist/esm/components/AutoScroller.d.ts +6 -6
- package/dist/esm/components/AutoTextarea.d.ts +1 -1
- package/dist/esm/components/ChatInput.d.ts +2 -2
- package/dist/esm/components/ChatMessage.d.ts +1 -1
- package/dist/esm/components/ConversationManager.d.ts +3 -3
- package/dist/esm/hooks/useConversationManager.d.ts +3 -3
- package/dist/esm/hooks/useConversationManagerRemote.d.ts +2 -2
- package/dist/esm/hooks/useConversationManagerState.d.ts +6 -6
- package/dist/esm/hooks/useConversationManagerStateReducer.d.ts +8 -8
- package/dist/esm/hooks/useDOMQuerySelector.d.ts +5 -4
- package/dist/esm/hooks/useDOMQuerySelector.js +33 -12
- package/dist/esm/hooks/useDeps.d.ts +1 -0
- package/dist/esm/hooks/useDeps.js +8 -0
- package/dist/esm/hooks/useWidgetInstance.d.ts +3 -3
- package/dist/esm/hooks/useWidgetInstance.js +22 -3
- package/dist/esm/hooks/useWidgetInstanceFunctions.d.ts +4 -3
- package/dist/esm/hooks/useWidgetInstanceFunctions.js +3 -2
- package/dist/esm/hooks/useWidgetInstanceNotifications.d.ts +4 -3
- package/dist/esm/hooks/useWidgetInstanceNotifications.js +3 -2
- package/dist/esm/utils/stream.d.ts +2 -2
- package/dist/esm/utils/stream.js +5 -1
- package/dist/esm/utils/string.d.ts +3 -3
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +33 -48
- package/dist/cjs/hooks/useWidgetQuerySelector.cjs +0 -44
- package/dist/cjs/hooks/useWidgetQuerySelector.d.ts +0 -5
- package/dist/cjs/utils/error.cjs +0 -10
- package/dist/cjs/utils/error.d.ts +0 -4
- package/dist/esm/hooks/useWidgetQuerySelector.d.ts +0 -5
- package/dist/esm/hooks/useWidgetQuerySelector.js +0 -39
- package/dist/esm/utils/error.d.ts +0 -4
- package/dist/esm/utils/error.js +0 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.streamComplete =
|
|
3
|
+
exports.streamComplete = streamComplete;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const it_js_1 = require("../utils/it.cjs");
|
|
6
6
|
const stream_js_1 = require("../utils/stream.cjs");
|
|
@@ -64,13 +64,13 @@ async function* complete({ client, messages, functions, maxRecusion = 50, ...opt
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
for await (const item of it) {
|
|
67
|
-
yield item;
|
|
68
67
|
if (options.onItem) {
|
|
69
68
|
const result = await options.onItem(item);
|
|
70
69
|
if (result && typeof result === 'object' && 'type' in result) {
|
|
71
70
|
yield result;
|
|
72
71
|
}
|
|
73
72
|
}
|
|
73
|
+
yield item;
|
|
74
74
|
const { type, data } = item;
|
|
75
75
|
if (type === 'message') {
|
|
76
76
|
const message = data;
|
|
@@ -206,5 +206,4 @@ async function* complete({ client, messages, functions, maxRecusion = 50, ...opt
|
|
|
206
206
|
function streamComplete(options) {
|
|
207
207
|
return (0, stream_js_1.stream)(complete(options));
|
|
208
208
|
}
|
|
209
|
-
exports.streamComplete = streamComplete;
|
|
210
209
|
exports.default = complete;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export function streamComplete(options: Options): import(
|
|
1
|
+
export function streamComplete(options: Options): import("../utils/stream.js").StreamResult;
|
|
2
2
|
export default complete;
|
|
3
|
-
export type ReactElement = import(
|
|
4
|
-
export type ReactNode = import(
|
|
3
|
+
export type ReactElement = import("react").ReactElement;
|
|
4
|
+
export type ReactNode = import("react").ReactNode;
|
|
5
5
|
export type Item = {
|
|
6
6
|
type: string;
|
|
7
7
|
data: object;
|
|
@@ -15,12 +15,12 @@ export type ValidatingParametersSchema = {
|
|
|
15
15
|
}>;
|
|
16
16
|
};
|
|
17
17
|
export type InputMessage = {
|
|
18
|
-
type:
|
|
18
|
+
type: "bot" | "user" | "reasoning" | "context" | "instruction" | "backstory" | "activity";
|
|
19
19
|
text: string;
|
|
20
20
|
meta?: Record<string, any>;
|
|
21
21
|
};
|
|
22
22
|
export type OutputMessage = {
|
|
23
|
-
type:
|
|
23
|
+
type: "bot" | "activity";
|
|
24
24
|
text: string;
|
|
25
25
|
meta?: Record<string, any>;
|
|
26
26
|
};
|
|
@@ -54,8 +54,8 @@ export type OnStartHandler = () => any;
|
|
|
54
54
|
export type OnFinishHandler = (arg0: {
|
|
55
55
|
messages: Message[];
|
|
56
56
|
}) => any;
|
|
57
|
-
export type Options = Omit<any,
|
|
58
|
-
client: import(
|
|
57
|
+
export type Options = Omit<any, "messages" | "functions"> & {
|
|
58
|
+
client: import("@chatbotkit/sdk").ConversationClient;
|
|
59
59
|
messages: InputMessage[];
|
|
60
60
|
functions?: (InputFunction | (() => InputFunction | Promise<InputFunction>))[];
|
|
61
61
|
maxRecusion?: number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.AutoScroller =
|
|
4
|
+
exports.AutoScroller = AutoScroller;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
const react_1 = tslib_1.__importStar(require("react"));
|
|
@@ -53,5 +53,4 @@ function AutoScroller(props) {
|
|
|
53
53
|
}, [disabled]);
|
|
54
54
|
return ((0, jsx_runtime_1.jsxs)("div", { ref: rootRef, ...rest, children: [anchor === 'top' ? (0, jsx_runtime_1.jsx)(AutoScrollAnchor, {}, "top") : null, children, anchor === 'bottom' ? (0, jsx_runtime_1.jsx)(AutoScrollAnchor, {}, "bottom") : null] }));
|
|
55
55
|
}
|
|
56
|
-
exports.AutoScroller = AutoScroller;
|
|
57
56
|
exports.default = AutoScroller;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export function AutoScroller(props?: {
|
|
2
|
-
|
|
3
|
-
anchor?: 'top' | 'bottom';
|
|
2
|
+
anchor?: "top" | "bottom";
|
|
4
3
|
childList?: boolean;
|
|
5
4
|
subtree?: boolean;
|
|
6
|
-
block?:
|
|
5
|
+
block?: "start" | "end";
|
|
7
6
|
delay?: number;
|
|
7
|
+
[name: string]: any;
|
|
8
8
|
}): import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
export default AutoScroller;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.AutoTextarea =
|
|
4
|
+
exports.AutoTextarea = AutoTextarea;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
const react_1 = tslib_1.__importStar(require("react"));
|
|
@@ -59,5 +59,4 @@ function AutoTextarea(props, forwardedRef) {
|
|
|
59
59
|
}, []);
|
|
60
60
|
return (0, jsx_runtime_1.jsx)("textarea", { ref: localRef, rows: 1, ...props });
|
|
61
61
|
}
|
|
62
|
-
exports.AutoTextarea = AutoTextarea;
|
|
63
62
|
exports.default = (0, react_1.forwardRef)(AutoTextarea);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.ChatInput =
|
|
4
|
+
exports.ChatInput = ChatInput;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
const AutoTextarea_js_1 = tslib_1.__importDefault(require("./AutoTextarea.cjs"));
|
|
@@ -17,5 +17,4 @@ function ChatInput(props) {
|
|
|
17
17
|
}
|
|
18
18
|
return (0, jsx_runtime_1.jsx)(AutoTextarea_js_1.default, { ...rest, onKeyDown: handleOnKeyDown });
|
|
19
19
|
}
|
|
20
|
-
exports.ChatInput = ChatInput;
|
|
21
20
|
exports.default = ChatInput;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use any';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.ChatMessage =
|
|
4
|
+
exports.ChatMessage = ChatMessage;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
const react_1 = require("react");
|
|
@@ -22,4 +22,3 @@ function ChatMessage(props) {
|
|
|
22
22
|
}, [customComponents]);
|
|
23
23
|
return ((0, jsx_runtime_1.jsxs)("div", { ...rest, children: [(0, jsx_runtime_1.jsx)(react_markdown_1.default, { remarkPlugins: remarkPlugins, rehypePlugins: rehypePlugins, components: components, children: text }), children] }));
|
|
24
24
|
}
|
|
25
|
-
exports.ChatMessage = ChatMessage;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export function ChatMessage(props: {
|
|
2
2
|
text: string;
|
|
3
|
-
} & Pick<import("react-markdown
|
|
3
|
+
} & Pick<import("react-markdown").Options, "remarkPlugins" | "rehypePlugins" | "components"> & import("react").HTMLProps<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.ChatMessages =
|
|
4
|
+
exports.ChatMessages = ChatMessages;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
const AutoScroller_js_1 = tslib_1.__importDefault(require("./AutoScroller.cjs"));
|
|
@@ -9,5 +9,4 @@ function ChatMessages(props) {
|
|
|
9
9
|
const { ...rest } = props || {};
|
|
10
10
|
return (0, jsx_runtime_1.jsx)(AutoScroller_js_1.default, { ...rest });
|
|
11
11
|
}
|
|
12
|
-
exports.ChatMessages = ChatMessages;
|
|
13
12
|
exports.default = ChatMessages;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.ConversationContext = void 0;
|
|
5
|
+
exports.ConversationManager = ConversationManager;
|
|
5
6
|
const tslib_1 = require("tslib");
|
|
6
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
8
|
const react_1 = require("react");
|
|
@@ -23,5 +24,4 @@ function ConversationManager({ children, ...options }) {
|
|
|
23
24
|
const manager = (0, useConversationManager_js_1.default)(options);
|
|
24
25
|
return ((0, jsx_runtime_1.jsx)(exports.ConversationContext.Provider, { value: manager, children: children }));
|
|
25
26
|
}
|
|
26
|
-
exports.ConversationManager = ConversationManager;
|
|
27
27
|
exports.default = ConversationManager;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export function ConversationManager({ children, ...options }: import(
|
|
2
|
-
children: import(
|
|
3
|
-
}): import(
|
|
1
|
+
export function ConversationManager({ children, ...options }: import("../hooks/useConversationManager.js").UseConversationManagerOptions & {
|
|
2
|
+
children: import("react").ReactNode;
|
|
3
|
+
}): import("react").ReactElement;
|
|
4
4
|
export const ConversationContext: import("react").Context<import("../hooks/useConversationManager.js").UseConversationManagerResult>;
|
|
5
5
|
export default ConversationManager;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.useConversationManager =
|
|
4
|
+
exports.useConversationManager = useConversationManager;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const useConversationManagerRemote_js_1 = tslib_1.__importDefault(require("./useConversationManagerRemote.cjs"));
|
|
@@ -128,5 +128,4 @@ function useConversationManager({ interactionMaxMessages = 100, ...conversationM
|
|
|
128
128
|
request,
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
|
-
exports.useConversationManager = useConversationManager;
|
|
132
131
|
exports.default = useConversationManager;
|
|
@@ -8,9 +8,9 @@ export type SimpleMessage = Message & {
|
|
|
8
8
|
export type ComplexMessage = Message & {
|
|
9
9
|
id: string;
|
|
10
10
|
createdAt: Date;
|
|
11
|
-
children?: import(
|
|
11
|
+
children?: import("react").ReactNode;
|
|
12
12
|
};
|
|
13
|
-
export type UseConversationManagerRemoteOptions = import(
|
|
13
|
+
export type UseConversationManagerRemoteOptions = import("./useConversationManagerRemote.js").UseConversationManagerRemoteOptions;
|
|
14
14
|
export type UseConversationManagerOptions = UseConversationManagerRemoteOptions & {
|
|
15
15
|
interactionMaxMessages?: number;
|
|
16
16
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use any';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.useConversationManagerRemote =
|
|
4
|
+
exports.useConversationManagerRemote = useConversationManagerRemote;
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const object_js_1 = require("../utils/object.cjs");
|
|
7
7
|
const stream_js_1 = require("../utils/stream.cjs");
|
|
@@ -88,5 +88,4 @@ function useConversationManagerRemote({ client: _client, endpoint, token, conver
|
|
|
88
88
|
]);
|
|
89
89
|
return remote;
|
|
90
90
|
}
|
|
91
|
-
exports.useConversationManagerRemote = useConversationManagerRemote;
|
|
92
91
|
exports.default = useConversationManagerRemote;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.useConversationManagerState =
|
|
4
|
+
exports.useConversationManagerState = useConversationManagerState;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const useConversationManagerStateReducer_js_1 = tslib_1.__importDefault(require("./useConversationManagerStateReducer.cjs"));
|
|
@@ -29,5 +29,4 @@ function useConversationManagerState(state) {
|
|
|
29
29
|
},
|
|
30
30
|
];
|
|
31
31
|
}
|
|
32
|
-
exports.useConversationManagerState = useConversationManagerState;
|
|
33
32
|
exports.default = useConversationManagerState;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export function useConversationManagerState(state?: Partial<State>): [State, StateFunctions];
|
|
2
2
|
export default useConversationManagerState;
|
|
3
|
-
export type State = import(
|
|
3
|
+
export type State = import("./useConversationManagerStateReducer.js").State;
|
|
4
4
|
export type StateFunctions = {
|
|
5
|
-
setThinking: (thinking: import(
|
|
6
|
-
setTyping: (typing: import(
|
|
7
|
-
appendText: (text: import(
|
|
8
|
-
appendMessage: (message: import(
|
|
5
|
+
setThinking: (thinking: import("./useConversationManagerStateReducer.js").SetThinkingAction["data"]["thinking"]) => void;
|
|
6
|
+
setTyping: (typing: import("./useConversationManagerStateReducer.js").SetTypingAction["data"]["typing"]) => void;
|
|
7
|
+
appendText: (text: import("./useConversationManagerStateReducer.js").AppendTextAction["data"]["text"]) => void;
|
|
8
|
+
appendMessage: (message: import("./useConversationManagerStateReducer.js").AppendMessageAction["data"]["message"]) => void;
|
|
9
9
|
};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.conversationManagerStateReducer = conversationManagerStateReducer;
|
|
5
|
+
exports.conversationManagerStateInitial = conversationManagerStateInitial;
|
|
6
|
+
exports.useConversationManagerStateReducer = useConversationManagerStateReducer;
|
|
5
7
|
const react_1 = require("react");
|
|
6
8
|
const string_js_1 = require("../utils/string.cjs");
|
|
7
9
|
function conversationManagerStateReducer(state, action) {
|
|
@@ -98,7 +100,6 @@ function conversationManagerStateReducer(state, action) {
|
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
}
|
|
101
|
-
exports.conversationManagerStateReducer = conversationManagerStateReducer;
|
|
102
103
|
function conversationManagerStateInitial(state) {
|
|
103
104
|
return {
|
|
104
105
|
message: null,
|
|
@@ -108,9 +109,7 @@ function conversationManagerStateInitial(state) {
|
|
|
108
109
|
...state,
|
|
109
110
|
};
|
|
110
111
|
}
|
|
111
|
-
exports.conversationManagerStateInitial = conversationManagerStateInitial;
|
|
112
112
|
function useConversationManagerStateReducer(state) {
|
|
113
113
|
return (0, react_1.useReducer)(conversationManagerStateReducer, state, conversationManagerStateInitial);
|
|
114
114
|
}
|
|
115
|
-
exports.useConversationManagerStateReducer = useConversationManagerStateReducer;
|
|
116
115
|
exports.default = useConversationManagerStateReducer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function conversationManagerStateReducer(state: State, action: Action): State;
|
|
2
2
|
export function conversationManagerStateInitial(state?: Partial<State>): State;
|
|
3
|
-
export function useConversationManagerStateReducer(state?: Partial<State>): [State, import(
|
|
3
|
+
export function useConversationManagerStateReducer(state?: Partial<State>): [State, import("react").Dispatch<Action>];
|
|
4
4
|
export default useConversationManagerStateReducer;
|
|
5
5
|
export type Message = any & {
|
|
6
6
|
id: string;
|
|
@@ -13,27 +13,27 @@ export type State = {
|
|
|
13
13
|
messages: Message[];
|
|
14
14
|
};
|
|
15
15
|
export type SetThinkingAction = {
|
|
16
|
-
type:
|
|
16
|
+
type: "setThinking";
|
|
17
17
|
data: {
|
|
18
18
|
thinking: boolean;
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
21
|
export type SetTypingAction = {
|
|
22
|
-
type:
|
|
22
|
+
type: "setTyping";
|
|
23
23
|
data: {
|
|
24
24
|
typing: boolean;
|
|
25
25
|
};
|
|
26
26
|
};
|
|
27
27
|
export type AppendTextAction = {
|
|
28
|
-
type:
|
|
28
|
+
type: "appendText";
|
|
29
29
|
data: {
|
|
30
30
|
text: string;
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
33
|
export type AppendMessageAction = {
|
|
34
|
-
type:
|
|
34
|
+
type: "appendMessage";
|
|
35
35
|
data: {
|
|
36
|
-
message: Omit<Message,
|
|
36
|
+
message: Omit<Message, "id" | "createdAt"> & {
|
|
37
37
|
id?: string;
|
|
38
38
|
createdAt?: Date;
|
|
39
39
|
};
|
|
@@ -1,29 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.default = useDOMQuerySelector;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const react_1 = require("react");
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
const useDeps_js_1 = tslib_1.__importDefault(require("./useDeps.cjs"));
|
|
7
|
+
function useDOMQuerySelector(selector, options, deps) {
|
|
8
|
+
const { waitForElements = false, disconnectOnFirstMatch = true, parent = typeof document !== 'undefined'
|
|
9
|
+
? document.documentElement
|
|
10
|
+
: undefined, } = options || {};
|
|
11
|
+
const thisDeps = (0, useDeps_js_1.default)(deps);
|
|
7
12
|
const [elements, setElements] = (0, react_1.useState)(([]));
|
|
8
13
|
(0, react_1.useEffect)(() => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
if (!selector) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (!parent) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const initialElements = parent.querySelectorAll(selector);
|
|
21
|
+
setElements(Array.from(initialElements));
|
|
22
|
+
if (!initialElements.length && waitForElements) {
|
|
12
23
|
const observer = new MutationObserver(() => {
|
|
13
|
-
const elements =
|
|
24
|
+
const elements = parent.querySelectorAll(selector);
|
|
14
25
|
if (elements.length) {
|
|
15
|
-
|
|
26
|
+
setElements(Array.from(elements));
|
|
27
|
+
if (disconnectOnFirstMatch) {
|
|
28
|
+
try {
|
|
29
|
+
observer.disconnect();
|
|
30
|
+
}
|
|
31
|
+
catch (_a) {
|
|
32
|
+
}
|
|
33
|
+
}
|
|
16
34
|
}
|
|
17
|
-
setElements((Array.from(elements)));
|
|
18
35
|
});
|
|
19
|
-
observer.observe(
|
|
36
|
+
observer.observe(parent, {
|
|
20
37
|
childList: true,
|
|
21
38
|
subtree: true,
|
|
22
39
|
});
|
|
23
|
-
return () =>
|
|
40
|
+
return () => {
|
|
41
|
+
try {
|
|
42
|
+
observer.disconnect();
|
|
43
|
+
}
|
|
44
|
+
catch (_a) {
|
|
45
|
+
}
|
|
46
|
+
};
|
|
24
47
|
}
|
|
25
|
-
}, [selector, waitForElements]);
|
|
48
|
+
}, [selector, waitForElements, disconnectOnFirstMatch, parent, thisDeps]);
|
|
26
49
|
return elements;
|
|
27
50
|
}
|
|
28
|
-
exports.useDOMQuerySelector = useDOMQuerySelector;
|
|
29
|
-
exports.default = useDOMQuerySelector;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export function useDOMQuerySelector
|
|
1
|
+
export default function useDOMQuerySelector(selector: string | null | undefined, options?: {
|
|
2
2
|
waitForElements?: boolean;
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
disconnectOnFirstMatch?: boolean;
|
|
4
|
+
parent?: ParentNode;
|
|
5
|
+
}, deps?: any[]): Element[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = useDeps;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useDeps(deps = []) {
|
|
6
|
+
const [depsId, setDepsId] = (0, react_1.useState)(0);
|
|
7
|
+
(0, react_1.useEffect)(() => {
|
|
8
|
+
setDepsId((prevId) => prevId + 1);
|
|
9
|
+
}, deps);
|
|
10
|
+
return depsId;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function useDeps(deps?: any[]): number;
|
|
@@ -1,11 +1,32 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.useWidgetInstance =
|
|
4
|
+
exports.useWidgetInstance = useWidgetInstance;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
5
6
|
const react_1 = require("react");
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
const useDOMQuerySelector_js_1 = tslib_1.__importDefault(require("./useDOMQuerySelector.cjs"));
|
|
8
|
+
function useWidgetInstance(selector, deps) {
|
|
9
|
+
const [instance, setInstance] = (0, react_1.useState)((null));
|
|
10
|
+
const [element] = (0, useDOMQuerySelector_js_1.default)(selector, { waitForElements: true }, deps);
|
|
8
11
|
(0, react_1.useEffect)(() => {
|
|
12
|
+
if (element) {
|
|
13
|
+
const widgetElement = (element);
|
|
14
|
+
if (widgetElement.readyPromise) {
|
|
15
|
+
widgetElement.readyPromise.then(() => setInstance(widgetElement));
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
{
|
|
19
|
+
const onReady = () => {
|
|
20
|
+
widgetElement.removeEventListener('ready', onReady);
|
|
21
|
+
setInstance(widgetElement);
|
|
22
|
+
};
|
|
23
|
+
widgetElement.addEventListener('ready', onReady);
|
|
24
|
+
return () => {
|
|
25
|
+
var _a;
|
|
26
|
+
(_a = widgetElement === null || widgetElement === void 0 ? void 0 : widgetElement.removeEventListener) === null || _a === void 0 ? void 0 : _a.call(widgetElement, 'ready', onReady);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
9
30
|
if (window.chatbotkitWidget) {
|
|
10
31
|
window.chatbotkitWidget.instancePromise.then((instance) => setInstance(instance));
|
|
11
32
|
return;
|
|
@@ -17,8 +38,7 @@ function useWidgetInstance() {
|
|
|
17
38
|
return () => {
|
|
18
39
|
window.removeEventListener('chatbotkitWidgetInit', onInit);
|
|
19
40
|
};
|
|
20
|
-
}, []);
|
|
41
|
+
}, [element]);
|
|
21
42
|
return instance;
|
|
22
43
|
}
|
|
23
|
-
exports.useWidgetInstance = useWidgetInstance;
|
|
24
44
|
exports.default = useWidgetInstance;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function useWidgetInstance(): ChatBotKitWidgetInstance | null;
|
|
1
|
+
export function useWidgetInstance(selector?: string, deps?: any[]): ChatBotKitWidgetInstance | null;
|
|
2
2
|
export default useWidgetInstance;
|
|
3
3
|
export type WidgetMessage = {
|
|
4
4
|
id: string;
|
|
@@ -21,7 +21,7 @@ export type WidgetFunctionWithHandler = WidgetFunctionBase & {
|
|
|
21
21
|
handler: (args: any) => any;
|
|
22
22
|
};
|
|
23
23
|
export type WidgetFunction = WidgetFunctionWithResult | WidgetFunctionWithHandler;
|
|
24
|
-
export type
|
|
24
|
+
export type WidgetRestartConversationFn = () => void;
|
|
25
25
|
export type WidgetSendMessageFn = (options: string | (({
|
|
26
26
|
message: string;
|
|
27
27
|
} | {
|
|
@@ -36,6 +36,6 @@ export type ChatBotKitWidgetInstance = HTMLElement & {
|
|
|
36
36
|
messages?: WidgetMessage[] | null;
|
|
37
37
|
notifications?: Record<string, WidgetNotification> | null;
|
|
38
38
|
functions?: Record<string, WidgetFunction> | null;
|
|
39
|
-
restartConversation:
|
|
39
|
+
restartConversation: WidgetRestartConversationFn;
|
|
40
40
|
sendMessage: WidgetSendMessageFn;
|
|
41
41
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.useWidgetInstanceFunctions =
|
|
4
|
+
exports.useWidgetInstanceFunctions = useWidgetInstanceFunctions;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const useWidgetInstance_js_1 = tslib_1.__importDefault(require("./useWidgetInstance.cjs"));
|
|
8
|
-
function useWidgetInstanceFunctions(params) {
|
|
9
|
-
const instance = (0, useWidgetInstance_js_1.default)();
|
|
8
|
+
function useWidgetInstanceFunctions(params, deps) {
|
|
9
|
+
const instance = (0, useWidgetInstance_js_1.default)(params === null || params === void 0 ? void 0 : params.selector, deps);
|
|
10
10
|
(0, react_1.useEffect)(() => {
|
|
11
11
|
if (!instance) {
|
|
12
12
|
return;
|
|
@@ -18,6 +18,6 @@ function useWidgetInstanceFunctions(params) {
|
|
|
18
18
|
...params === null || params === void 0 ? void 0 : params.functions,
|
|
19
19
|
};
|
|
20
20
|
}, [params === null || params === void 0 ? void 0 : params.functions, instance]);
|
|
21
|
+
return instance;
|
|
21
22
|
}
|
|
22
|
-
exports.useWidgetInstanceFunctions = useWidgetInstanceFunctions;
|
|
23
23
|
exports.default = useWidgetInstanceFunctions;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export function useWidgetInstanceFunctions(params?: {
|
|
2
|
+
selector?: string;
|
|
2
3
|
functions?: Record<string, WidgetFunction> | null;
|
|
3
|
-
}):
|
|
4
|
+
}, deps?: any[]): import("./useWidgetInstance.js").ChatBotKitWidgetInstance | null;
|
|
4
5
|
export default useWidgetInstanceFunctions;
|
|
5
|
-
export type WidgetFunction = import(
|
|
6
|
+
export type WidgetFunction = import("./useWidgetInstance.js").WidgetFunction;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.useWidgetInstanceNotifications =
|
|
4
|
+
exports.useWidgetInstanceNotifications = useWidgetInstanceNotifications;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const useWidgetInstance_js_1 = tslib_1.__importDefault(require("./useWidgetInstance.cjs"));
|
|
8
|
-
function useWidgetInstanceNotifications(params) {
|
|
9
|
-
const instance = (0, useWidgetInstance_js_1.default)();
|
|
8
|
+
function useWidgetInstanceNotifications(params, deps) {
|
|
9
|
+
const instance = (0, useWidgetInstance_js_1.default)(params === null || params === void 0 ? void 0 : params.selector, deps);
|
|
10
10
|
(0, react_1.useEffect)(() => {
|
|
11
11
|
if (!instance) {
|
|
12
12
|
return;
|
|
@@ -18,6 +18,6 @@ function useWidgetInstanceNotifications(params) {
|
|
|
18
18
|
...params === null || params === void 0 ? void 0 : params.notifications,
|
|
19
19
|
};
|
|
20
20
|
}, [params === null || params === void 0 ? void 0 : params.notifications, instance]);
|
|
21
|
+
return instance;
|
|
21
22
|
}
|
|
22
|
-
exports.useWidgetInstanceNotifications = useWidgetInstanceNotifications;
|
|
23
23
|
exports.default = useWidgetInstanceNotifications;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export function useWidgetInstanceNotifications(params?: {
|
|
2
|
+
selector?: string;
|
|
2
3
|
notifications?: Record<string, WidgetNotification> | null;
|
|
3
|
-
}):
|
|
4
|
+
}, deps?: any[]): import("./useWidgetInstance.js").ChatBotKitWidgetInstance | null;
|
|
4
5
|
export default useWidgetInstanceNotifications;
|
|
5
|
-
export type WidgetNotification = import(
|
|
6
|
+
export type WidgetNotification = import("./useWidgetInstance.js").WidgetNotification;
|
package/dist/cjs/utils/it.cjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isAsyncGenerator =
|
|
3
|
+
exports.isAsyncGenerator = isAsyncGenerator;
|
|
4
4
|
function isAsyncGenerator(value) {
|
|
5
5
|
return (typeof value === 'object' &&
|
|
6
6
|
value !== null &&
|
|
7
7
|
typeof value[Symbol.asyncIterator] === 'function');
|
|
8
8
|
}
|
|
9
|
-
exports.isAsyncGenerator = isAsyncGenerator;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.cloneAndExtend =
|
|
3
|
+
exports.cloneAndExtend = cloneAndExtend;
|
|
4
4
|
function cloneAndExtend(object, extension) {
|
|
5
5
|
return Object.assign(Object.assign(Object.create(Object.getPrototypeOf(object)), object), extension);
|
|
6
6
|
}
|
|
7
|
-
exports.cloneAndExtend = cloneAndExtend;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.StreamError = void 0;
|
|
4
|
+
exports.stream = stream;
|
|
5
|
+
exports.consume = consume;
|
|
4
6
|
class StreamError extends Error {
|
|
5
7
|
constructor(message, code) {
|
|
6
8
|
super(message);
|
|
@@ -39,14 +41,17 @@ function stream(source, options) {
|
|
|
39
41
|
return result;
|
|
40
42
|
});
|
|
41
43
|
}
|
|
42
|
-
exports.stream = stream;
|
|
43
44
|
function consumeIt(source) {
|
|
44
45
|
return {
|
|
45
46
|
[Symbol.asyncIterator]: function () {
|
|
46
47
|
return {
|
|
47
48
|
current: source,
|
|
48
49
|
async next() {
|
|
49
|
-
const
|
|
50
|
+
const result = await this.current;
|
|
51
|
+
if (!result || typeof result !== 'object') {
|
|
52
|
+
throw new StreamError('Invalid stream result', 'INVALID_STREAM_RESULT');
|
|
53
|
+
}
|
|
54
|
+
const { iteratorResult, next, error } = result;
|
|
50
55
|
if (error) {
|
|
51
56
|
if (typeof error === 'object') {
|
|
52
57
|
throw new StreamError(error.message, error.code);
|
|
@@ -73,4 +78,3 @@ async function* consume(source, options) {
|
|
|
73
78
|
await options.onFinish();
|
|
74
79
|
}
|
|
75
80
|
}
|
|
76
|
-
exports.consume = consume;
|