@super_studio/ecforce-ai-agent-react 0.3.0 → 0.4.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/components/chatbot-frame.d.ts +7 -0
- package/dist/components/chatbot-frame.d.ts.map +1 -0
- package/dist/components/chatbot-sheet.d.ts +8 -0
- package/dist/components/chatbot-sheet.d.ts.map +1 -0
- package/dist/components/provider/chatbot-proivder.d.ts +36 -0
- package/dist/components/provider/chatbot-proivder.d.ts.map +1 -0
- package/dist/components/provider/use-chatbot-frame-handler.d.ts +44 -0
- package/dist/components/provider/use-chatbot-frame-handler.d.ts.map +1 -0
- package/dist/components/provider/use-chatbot-window-states.d.ts +9 -0
- package/dist/components/provider/use-chatbot-window-states.d.ts.map +1 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/{tooltip.d.ts → components/tooltip.d.ts} +0 -1
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/hooks/use-chatbot-config.d.ts +19 -0
- package/dist/hooks/use-chatbot-config.d.ts.map +1 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +197 -168
- package/dist/index.mjs +199 -170
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/{chatbot-sheet.css → styles/chatbot-sheet.css} +0 -2
- package/package.json +3 -2
- package/src/components/chatbot-frame.tsx +26 -0
- package/src/{chatbot-sheet.tsx → components/chatbot-sheet.tsx} +25 -31
- package/src/components/provider/chatbot-proivder.tsx +79 -0
- package/src/components/provider/use-chatbot-frame-handler.tsx +130 -0
- package/src/components/provider/use-chatbot-window-states.tsx +15 -0
- package/src/{sheet.tsx → components/sheet.tsx} +1 -3
- package/src/{tooltip.tsx → components/tooltip.tsx} +0 -3
- package/src/hooks/use-chatbot-config.tsx +60 -0
- package/src/index.ts +6 -5
- package/src/{chatbot-sheet.css → styles/chatbot-sheet.css} +0 -2
- package/dist/agent-frame.d.ts +0 -32
- package/dist/agent-frame.d.ts.map +0 -1
- package/dist/chatbot-proivder.d.ts +0 -15
- package/dist/chatbot-proivder.d.ts.map +0 -1
- package/dist/chatbot-sheet.d.ts +0 -6
- package/dist/chatbot-sheet.d.ts.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/sheet.d.ts.map +0 -1
- package/dist/tooltip.d.ts.map +0 -1
- package/src/agent-frame.tsx +0 -196
- package/src/chatbot-proivder.tsx +0 -51
- /package/dist/{sheet.d.ts → components/sheet.d.ts} +0 -0
- /package/dist/{constants.d.ts → lib/constants.d.ts} +0 -0
- /package/dist/{tooltip.css → styles/preset.css} +0 -0
- /package/src/{constants.ts → lib/constants.ts} +0 -0
- /package/src/{tooltip.css → styles/preset.css} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type ChatbotFrameProps = {
|
|
2
|
+
agentId: string;
|
|
3
|
+
url?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function ChatbotFrame({ agentId, className, url }: ChatbotFrameProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=chatbot-frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatbot-frame.d.ts","sourceRoot":"","sources":["../../src/components/chatbot-frame.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,iBAAiB,2CAgB1E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type ChatbotFrameProps } from "./chatbot-frame";
|
|
3
|
+
type ChatbotSheetProps = ChatbotFrameProps & {
|
|
4
|
+
sheetStyle?: React.CSSProperties;
|
|
5
|
+
};
|
|
6
|
+
export declare function ChatbotSheet({ sheetStyle, ...props }: ChatbotSheetProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=chatbot-sheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatbot-sheet.d.ts","sourceRoot":"","sources":["../../src/components/chatbot-sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAUvE,KAAK,iBAAiB,GAAG,iBAAiB,GAAG;IAC3C,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAClC,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAoBvE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type InitProps, type MCP } from "./use-chatbot-frame-handler";
|
|
3
|
+
type ChatbotContextType = {
|
|
4
|
+
/** 1回チャットボットを開いたら、固定でtrueになる */
|
|
5
|
+
hasOpened: boolean;
|
|
6
|
+
/** チャットボットを開いているか */
|
|
7
|
+
open: boolean;
|
|
8
|
+
/** チャットボットを開く */
|
|
9
|
+
setOpen: (open: boolean) => void;
|
|
10
|
+
/** チャットボットを展開しているか */
|
|
11
|
+
isExpanded: boolean;
|
|
12
|
+
/** チャットボットを展開する */
|
|
13
|
+
setIsExpanded: (expanded: boolean) => void;
|
|
14
|
+
/** チャットボットを初期化 */
|
|
15
|
+
init: (props: InitProps) => void;
|
|
16
|
+
/** MCPを設定 */
|
|
17
|
+
setMcps: (mcps: MCP[]) => void;
|
|
18
|
+
/** アプリ名を設定 */
|
|
19
|
+
setAppName: (appName: string) => void;
|
|
20
|
+
/** チャットボットが準備できたか */
|
|
21
|
+
isReady: boolean;
|
|
22
|
+
/** チャットボットが初期化されたか */
|
|
23
|
+
isInitialized: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
* チャットボットのiframe要素を設定
|
|
27
|
+
*/
|
|
28
|
+
setIframeEl: (iframeEl: HTMLIFrameElement | null) => void;
|
|
29
|
+
};
|
|
30
|
+
export declare function useChatbot(): ChatbotContextType;
|
|
31
|
+
type ChatbotProviderProps = {
|
|
32
|
+
children: React.ReactNode;
|
|
33
|
+
};
|
|
34
|
+
export declare function ChatbotProvider({ children }: ChatbotProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=chatbot-proivder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatbot-proivder.d.ts","sourceRoot":"","sources":["../../../src/components/provider/chatbot-proivder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,GAAG,EACT,MAAM,6BAA6B,CAAC;AAGrC,KAAK,kBAAkB,GAAG;IACxB,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,iBAAiB;IACjB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,sBAAsB;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,mBAAmB;IACnB,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,kBAAkB;IAClB,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACjC,aAAa;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAC/B,cAAc;IACd,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;CAC3D,CAAC;AAMF,wBAAgB,UAAU,uBAMzB;AAED,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CA0BjE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type IframeMessage = {
|
|
3
|
+
type: "CHATBOT_READY";
|
|
4
|
+
} | {
|
|
5
|
+
type: "CHATBOT_INITIALIZED";
|
|
6
|
+
} | {
|
|
7
|
+
type: "CLOSE_CHATBOT";
|
|
8
|
+
} | {
|
|
9
|
+
type: "EXPAND_CHATBOT";
|
|
10
|
+
} | {
|
|
11
|
+
type: "SHRINK_CHATBOT";
|
|
12
|
+
};
|
|
13
|
+
export type MCP = {
|
|
14
|
+
name: string;
|
|
15
|
+
url: string;
|
|
16
|
+
headers?: Record<string, string>;
|
|
17
|
+
};
|
|
18
|
+
export type InitProps = {
|
|
19
|
+
mcps?: MCP[];
|
|
20
|
+
appName?: string;
|
|
21
|
+
};
|
|
22
|
+
export type ParentMessage = {
|
|
23
|
+
type: "mcps";
|
|
24
|
+
mcps: MCP[];
|
|
25
|
+
} | {
|
|
26
|
+
type: "appName";
|
|
27
|
+
appName: string;
|
|
28
|
+
} | {
|
|
29
|
+
type: "init";
|
|
30
|
+
mcps?: MCP[];
|
|
31
|
+
appName?: string;
|
|
32
|
+
};
|
|
33
|
+
export declare function useChatbotFrameHandler({ setOpen, setIsExpanded, }: {
|
|
34
|
+
setOpen: (open: boolean) => void;
|
|
35
|
+
setIsExpanded: (expanded: boolean) => void;
|
|
36
|
+
}): {
|
|
37
|
+
init: (props: InitProps) => void;
|
|
38
|
+
setMcps: (mcps: MCP[]) => void;
|
|
39
|
+
setAppName: (appName: string) => void;
|
|
40
|
+
setIframeEl: React.Dispatch<React.SetStateAction<HTMLIFrameElement | null>>;
|
|
41
|
+
isReady: boolean;
|
|
42
|
+
isInitialized: boolean;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=use-chatbot-frame-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-chatbot-frame-handler.d.ts","sourceRoot":"","sources":["../../../src/components/provider/use-chatbot-frame-handler.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/B,MAAM,MAAM,GAAG,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;CACb,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,aAAa,GACd,EAAE;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;kBAqBW,SAAS;oBAUV,GAAG,EAAE;0BAOF,MAAM;;;;EAkDnB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare function useChatbotWindowStates(): {
|
|
3
|
+
hasOpened: boolean;
|
|
4
|
+
open: boolean;
|
|
5
|
+
isExpanded: boolean;
|
|
6
|
+
setOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
|
7
|
+
setIsExpanded: React.Dispatch<React.SetStateAction<boolean>>;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=use-chatbot-window-states.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-chatbot-window-states.d.ts","sourceRoot":"","sources":["../../../src/components/provider/use-chatbot-window-states.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,sBAAsB;;;;;;EAYrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../src/components/sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,iBAAS,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,2CAW5E;AAED,QAAA,MAAM,YAAY,mKAUhB,CAAC;AAGH,QAAA,MAAM,UAAU,iKAUd,CAAC;AASH,QAAA,MAAM,YAAY,6JAgChB,CAAC;AAGH,QAAA,MAAM,WAAW,6GAUf,CAAC;AAGH,QAAA,MAAM,WAAW,6GAUf,CAAC;AAGH,QAAA,MAAM,UAAU,mKAUd,CAAC;AAGH,QAAA,MAAM,gBAAgB,6KAUpB,CAAC;AAGH,OAAO,EACL,KAAK,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AASA,KAAK,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAChD,KAAK,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExC,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,IAAI,EACJ,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,GAChB,EAAE,YAAY,2CA0Cd"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type MCP } from "../components/provider/use-chatbot-frame-handler";
|
|
2
|
+
type ChatbotConfig = {
|
|
3
|
+
/** エージェントにつなげるMCPの情報 */
|
|
4
|
+
mcps?: MCP[];
|
|
5
|
+
/** アプリ名のメタデータ */
|
|
6
|
+
appName?: string;
|
|
7
|
+
/**
|
|
8
|
+
* trueになるまで、初期化されません。
|
|
9
|
+
* 初期化せれたあとはもう使われません。
|
|
10
|
+
* @default true
|
|
11
|
+
*/
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* このフックに渡される情報で受動的にinitを呼び出し、mcpsとappNameを更新する
|
|
16
|
+
*/
|
|
17
|
+
export declare function useChatbotConfig({ mcps, appName, enabled, }: ChatbotConfig): void;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=use-chatbot-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-chatbot-config.d.ts","sourceRoot":"","sources":["../../src/hooks/use-chatbot-config.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,kDAAkD,CAAC;AAE5E,KAAK,aAAa,GAAG;IACnB,wBAAwB;IACxB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,iBAAiB;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,OAAO,EACP,OAAc,GACf,EAAE,aAAa,QAmCf"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export * from "./chatbot-proivder";
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./chatbot-
|
|
4
|
-
export * from "./sheet";
|
|
5
|
-
export * from "./
|
|
1
|
+
export * from "./components/provider/chatbot-proivder";
|
|
2
|
+
export * from "./hooks/use-chatbot-config";
|
|
3
|
+
export * from "./components/chatbot-frame";
|
|
4
|
+
export * from "./components/chatbot-sheet";
|
|
5
|
+
export * from "./components/sheet";
|
|
6
|
+
export * from "./components/tooltip";
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -31,169 +31,200 @@ var __objRest = (source, exclude) => {
|
|
|
31
31
|
return target;
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
// src/chatbot-proivder.tsx
|
|
35
|
-
var _react = require('react'); var
|
|
34
|
+
// src/components/provider/chatbot-proivder.tsx
|
|
35
|
+
var _react = require('react'); var React5 = _interopRequireWildcard(_react);
|
|
36
|
+
|
|
37
|
+
// src/components/provider/use-chatbot-frame-handler.tsx
|
|
38
|
+
|
|
39
|
+
function useChatbotFrameHandler({
|
|
40
|
+
setOpen,
|
|
41
|
+
setIsExpanded
|
|
42
|
+
}) {
|
|
43
|
+
const [iframeEl, setIframeEl] = React5.default.useState(
|
|
44
|
+
null
|
|
45
|
+
);
|
|
46
|
+
const [isReady, setIsReady] = React5.default.useState(false);
|
|
47
|
+
const [isInitialized, setIsInitialized] = React5.default.useState(false);
|
|
48
|
+
const postMessage = React5.default.useCallback(
|
|
49
|
+
(message) => {
|
|
50
|
+
if (iframeEl == null ? void 0 : iframeEl.contentWindow) {
|
|
51
|
+
if (process.env.NODE_ENV === "development") {
|
|
52
|
+
console.log("sending message to iframe", message);
|
|
53
|
+
}
|
|
54
|
+
iframeEl.contentWindow.postMessage(message, "*");
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
[iframeEl]
|
|
58
|
+
);
|
|
59
|
+
const init = React5.default.useCallback(
|
|
60
|
+
(props) => {
|
|
61
|
+
postMessage(__spreadValues({
|
|
62
|
+
type: "init"
|
|
63
|
+
}, props));
|
|
64
|
+
},
|
|
65
|
+
[postMessage]
|
|
66
|
+
);
|
|
67
|
+
const setMcps = React5.default.useCallback(
|
|
68
|
+
(mcps) => {
|
|
69
|
+
postMessage({ type: "mcps", mcps });
|
|
70
|
+
},
|
|
71
|
+
[postMessage]
|
|
72
|
+
);
|
|
73
|
+
const setAppName = React5.default.useCallback(
|
|
74
|
+
(appName) => {
|
|
75
|
+
postMessage({ type: "appName", appName });
|
|
76
|
+
},
|
|
77
|
+
[postMessage]
|
|
78
|
+
);
|
|
79
|
+
React5.default.useEffect(() => {
|
|
80
|
+
const iframe = iframeEl;
|
|
81
|
+
if (!iframe) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const handleMessage = (event) => {
|
|
85
|
+
var _a;
|
|
86
|
+
if (process.env.NODE_ENV === "development") {
|
|
87
|
+
console.log("iframe message", event.data);
|
|
88
|
+
}
|
|
89
|
+
switch ((_a = event.data) == null ? void 0 : _a.type) {
|
|
90
|
+
case "CHATBOT_READY":
|
|
91
|
+
setIsReady(true);
|
|
92
|
+
break;
|
|
93
|
+
case "CHATBOT_INITIALIZED":
|
|
94
|
+
setIsInitialized(true);
|
|
95
|
+
break;
|
|
96
|
+
case "CLOSE_CHATBOT":
|
|
97
|
+
setOpen(false);
|
|
98
|
+
break;
|
|
99
|
+
case "EXPAND_CHATBOT":
|
|
100
|
+
setIsExpanded(true);
|
|
101
|
+
break;
|
|
102
|
+
case "SHRINK_CHATBOT":
|
|
103
|
+
setIsExpanded(false);
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const handleIframeLoad = () => {
|
|
108
|
+
window.addEventListener("message", handleMessage);
|
|
109
|
+
};
|
|
110
|
+
iframe.addEventListener("load", handleIframeLoad);
|
|
111
|
+
return () => {
|
|
112
|
+
window.removeEventListener("message", handleMessage);
|
|
113
|
+
iframe.removeEventListener("load", handleIframeLoad);
|
|
114
|
+
};
|
|
115
|
+
}, [iframeEl]);
|
|
116
|
+
return { init, setMcps, setAppName, setIframeEl, isReady, isInitialized };
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// src/components/provider/use-chatbot-window-states.tsx
|
|
120
|
+
|
|
121
|
+
function useChatbotWindowStates() {
|
|
122
|
+
const [hasOpened, setHasOpened] = React5.default.useState(false);
|
|
123
|
+
const [open, setOpen] = React5.default.useState(false);
|
|
124
|
+
const [isExpanded, setIsExpanded] = React5.default.useState(false);
|
|
125
|
+
React5.default.useEffect(() => {
|
|
126
|
+
if (open) {
|
|
127
|
+
setHasOpened(true);
|
|
128
|
+
}
|
|
129
|
+
}, [open]);
|
|
130
|
+
return { hasOpened, open, isExpanded, setOpen, setIsExpanded };
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// src/components/provider/chatbot-proivder.tsx
|
|
36
134
|
var _jsxruntime = require('react/jsx-runtime');
|
|
37
|
-
var ChatbotContext =
|
|
135
|
+
var ChatbotContext = React5.default.createContext(
|
|
38
136
|
void 0
|
|
39
137
|
);
|
|
40
138
|
function useChatbot() {
|
|
41
|
-
const context =
|
|
139
|
+
const context = React5.default.useContext(ChatbotContext);
|
|
42
140
|
if (!context) {
|
|
43
141
|
throw new Error("useChatbot must be used within a ChatbotProvider");
|
|
44
142
|
}
|
|
45
143
|
return context;
|
|
46
144
|
}
|
|
47
145
|
function ChatbotProvider({ children }) {
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
setHasOpened(true);
|
|
54
|
-
}
|
|
55
|
-
}, [open]);
|
|
146
|
+
const { hasOpened, open, isExpanded, setOpen, setIsExpanded } = useChatbotWindowStates();
|
|
147
|
+
const { setMcps, setAppName, init, isReady, isInitialized, setIframeEl } = useChatbotFrameHandler({
|
|
148
|
+
setOpen,
|
|
149
|
+
setIsExpanded
|
|
150
|
+
});
|
|
56
151
|
const value = {
|
|
57
152
|
hasOpened,
|
|
58
153
|
open,
|
|
59
154
|
setOpen,
|
|
60
155
|
isExpanded,
|
|
61
|
-
setIsExpanded
|
|
156
|
+
setIsExpanded,
|
|
157
|
+
init,
|
|
158
|
+
setMcps,
|
|
159
|
+
setAppName,
|
|
160
|
+
isReady,
|
|
161
|
+
isInitialized,
|
|
162
|
+
setIframeEl
|
|
62
163
|
};
|
|
63
164
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatbotContext.Provider, { value, children });
|
|
64
165
|
}
|
|
65
166
|
|
|
66
|
-
// src/
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
167
|
+
// src/hooks/use-chatbot-config.tsx
|
|
74
168
|
|
|
169
|
+
function useChatbotConfig({
|
|
170
|
+
mcps,
|
|
171
|
+
appName,
|
|
172
|
+
enabled = true
|
|
173
|
+
}) {
|
|
174
|
+
const { init, setMcps, setAppName, isReady } = useChatbot();
|
|
175
|
+
const sentInitRef = React5.default.useRef(false);
|
|
176
|
+
const [currentMcps, setCurrentMcps] = React5.default.useState();
|
|
177
|
+
const [currentAppName, setCurrentAppName] = React5.default.useState();
|
|
178
|
+
React5.default.useEffect(() => {
|
|
179
|
+
if (enabled && isReady && !sentInitRef.current) {
|
|
180
|
+
init({ mcps, appName });
|
|
181
|
+
sentInitRef.current = true;
|
|
182
|
+
setCurrentMcps(mcps);
|
|
183
|
+
setCurrentAppName(appName);
|
|
184
|
+
}
|
|
185
|
+
}, [enabled, init, mcps, appName, isReady]);
|
|
186
|
+
React5.default.useEffect(() => {
|
|
187
|
+
if (sentInitRef.current && mcps && JSON.stringify(currentMcps) !== JSON.stringify(mcps)) {
|
|
188
|
+
setMcps(mcps);
|
|
189
|
+
setCurrentMcps(mcps);
|
|
190
|
+
}
|
|
191
|
+
}, [mcps]);
|
|
192
|
+
React5.default.useEffect(() => {
|
|
193
|
+
if (sentInitRef.current && appName && currentAppName !== appName) {
|
|
194
|
+
setCurrentAppName(appName);
|
|
195
|
+
setAppName(appName);
|
|
196
|
+
}
|
|
197
|
+
}, [appName]);
|
|
198
|
+
}
|
|
75
199
|
|
|
76
|
-
// src/constants.ts
|
|
200
|
+
// src/lib/constants.ts
|
|
77
201
|
var PROD_CHATBOT_URL = "https://ecforce-ai-agent.vercel.app";
|
|
78
202
|
|
|
79
|
-
// src/
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}, []);
|
|
96
|
-
const init = _react.useCallback.call(void 0,
|
|
97
|
-
(props) => {
|
|
98
|
-
postMessage(__spreadValues({
|
|
99
|
-
type: "init"
|
|
100
|
-
}, props));
|
|
101
|
-
},
|
|
102
|
-
[postMessage]
|
|
103
|
-
);
|
|
104
|
-
const setMcps = _react.useCallback.call(void 0,
|
|
105
|
-
(mcps2) => {
|
|
106
|
-
postMessage({ type: "mcps", mcps: mcps2 });
|
|
107
|
-
},
|
|
108
|
-
[postMessage]
|
|
109
|
-
);
|
|
110
|
-
const setAppName = _react.useCallback.call(void 0,
|
|
111
|
-
(appName2) => {
|
|
112
|
-
postMessage({ type: "appName", appName: appName2 });
|
|
113
|
-
},
|
|
114
|
-
[postMessage]
|
|
115
|
-
);
|
|
116
|
-
_react.useImperativeHandle.call(void 0,
|
|
117
|
-
ref,
|
|
118
|
-
() => ({
|
|
119
|
-
setMcps,
|
|
120
|
-
setAppName,
|
|
121
|
-
get isReady() {
|
|
122
|
-
return isReady;
|
|
123
|
-
}
|
|
124
|
-
}),
|
|
125
|
-
[setMcps, setAppName, isReady]
|
|
126
|
-
);
|
|
127
|
-
_react.useEffect.call(void 0, () => {
|
|
128
|
-
const iframe = iframeRef.current;
|
|
129
|
-
if (!iframe) {
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
const handleMessage = (event) => {
|
|
133
|
-
var _a2;
|
|
134
|
-
if (process.env.NODE_ENV === "development") {
|
|
135
|
-
console.log("iframe message", event.data);
|
|
136
|
-
}
|
|
137
|
-
switch ((_a2 = event.data) == null ? void 0 : _a2.type) {
|
|
138
|
-
case "CHATBOT_READY":
|
|
139
|
-
setIsReady(true);
|
|
140
|
-
break;
|
|
141
|
-
case "CLOSE_CHATBOT":
|
|
142
|
-
setOpen(false);
|
|
143
|
-
break;
|
|
144
|
-
case "EXPAND_CHATBOT":
|
|
145
|
-
setIsExpanded(true);
|
|
146
|
-
break;
|
|
147
|
-
case "SHRINK_CHATBOT":
|
|
148
|
-
setIsExpanded(false);
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
const handleIframeLoad = () => {
|
|
153
|
-
window.addEventListener("message", handleMessage);
|
|
154
|
-
};
|
|
155
|
-
iframe.addEventListener("load", handleIframeLoad);
|
|
156
|
-
return () => {
|
|
157
|
-
window.removeEventListener("message", handleMessage);
|
|
158
|
-
iframe.removeEventListener("load", handleIframeLoad);
|
|
159
|
-
};
|
|
160
|
-
}, []);
|
|
161
|
-
_react.useEffect.call(void 0, () => {
|
|
162
|
-
if (isReady && !hasInitialized) {
|
|
163
|
-
setHasInitialized(true);
|
|
164
|
-
init({ mcps });
|
|
165
|
-
if (appName) {
|
|
166
|
-
setAppName(appName);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}, [isReady, init, mcps, appName, hasInitialized, setAppName]);
|
|
170
|
-
_react.useEffect.call(void 0, () => {
|
|
171
|
-
if (JSON.stringify(currentMcps) !== JSON.stringify(mcps)) {
|
|
172
|
-
setCurrentMcps(mcps);
|
|
173
|
-
setMcps(mcps);
|
|
174
|
-
}
|
|
175
|
-
}, [setMcps, mcps, currentMcps]);
|
|
176
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
177
|
-
"iframe",
|
|
178
|
-
{
|
|
179
|
-
ref: iframeRef,
|
|
180
|
-
src: `${chatbotUrl}/embed/${agentId}`,
|
|
181
|
-
className,
|
|
182
|
-
allow: "clipboard-write",
|
|
183
|
-
style: {
|
|
184
|
-
width: "100%",
|
|
185
|
-
height: "100%"
|
|
186
|
-
}
|
|
203
|
+
// src/components/chatbot-frame.tsx
|
|
204
|
+
|
|
205
|
+
function ChatbotFrame({ agentId, className, url }) {
|
|
206
|
+
var _a;
|
|
207
|
+
const chatbotUrl = (_a = url != null ? url : process.env.CHATBOT_URL) != null ? _a : PROD_CHATBOT_URL;
|
|
208
|
+
const { setIframeEl } = useChatbot();
|
|
209
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
210
|
+
"iframe",
|
|
211
|
+
{
|
|
212
|
+
ref: setIframeEl,
|
|
213
|
+
src: `${chatbotUrl}/embed/${agentId}`,
|
|
214
|
+
className,
|
|
215
|
+
allow: "clipboard-write",
|
|
216
|
+
style: {
|
|
217
|
+
width: "100%",
|
|
218
|
+
height: "100%"
|
|
187
219
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
AgentFrame.displayName = "AgentFrame";
|
|
220
|
+
}
|
|
221
|
+
);
|
|
222
|
+
}
|
|
192
223
|
|
|
193
|
-
// src/chatbot-sheet.tsx
|
|
224
|
+
// src/components/chatbot-sheet.tsx
|
|
194
225
|
|
|
195
226
|
|
|
196
|
-
// src/sheet.tsx
|
|
227
|
+
// src/components/sheet.tsx
|
|
197
228
|
var _reactdialog = require('@radix-ui/react-dialog'); var SheetPrimitive = _interopRequireWildcard(_reactdialog);
|
|
198
229
|
|
|
199
230
|
|
|
@@ -210,7 +241,7 @@ function Sheet(_a) {
|
|
|
210
241
|
}, props)
|
|
211
242
|
);
|
|
212
243
|
}
|
|
213
|
-
var SheetTrigger =
|
|
244
|
+
var SheetTrigger = React5.forwardRef((_a, ref) => {
|
|
214
245
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
215
246
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
216
247
|
SheetPrimitive.Trigger,
|
|
@@ -222,7 +253,7 @@ var SheetTrigger = React2.forwardRef((_a, ref) => {
|
|
|
222
253
|
);
|
|
223
254
|
});
|
|
224
255
|
SheetTrigger.displayName = SheetPrimitive.Trigger.displayName;
|
|
225
|
-
var SheetClose =
|
|
256
|
+
var SheetClose = React5.forwardRef((_a, ref) => {
|
|
226
257
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
227
258
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
228
259
|
SheetPrimitive.Close,
|
|
@@ -238,7 +269,7 @@ function SheetPortal(_a) {
|
|
|
238
269
|
var props = __objRest(_a, []);
|
|
239
270
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SheetPrimitive.Portal, __spreadValues({ "data-slot": "sheet-portal" }, props));
|
|
240
271
|
}
|
|
241
|
-
var SheetContent =
|
|
272
|
+
var SheetContent = React5.forwardRef((_a, ref) => {
|
|
242
273
|
var _b = _a, { className, children, style } = _b, props = __objRest(_b, ["className", "children", "style"]);
|
|
243
274
|
const { isExpanded, open, hasOpened } = useChatbot();
|
|
244
275
|
const width = isExpanded ? "848px" : "400px";
|
|
@@ -262,7 +293,7 @@ var SheetContent = React2.forwardRef((_a, ref) => {
|
|
|
262
293
|
) });
|
|
263
294
|
});
|
|
264
295
|
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
265
|
-
var SheetHeader =
|
|
296
|
+
var SheetHeader = React5.forwardRef((_a, ref) => {
|
|
266
297
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
267
298
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
268
299
|
"div",
|
|
@@ -274,7 +305,7 @@ var SheetHeader = React2.forwardRef((_a, ref) => {
|
|
|
274
305
|
);
|
|
275
306
|
});
|
|
276
307
|
SheetHeader.displayName = "SheetHeader";
|
|
277
|
-
var SheetFooter =
|
|
308
|
+
var SheetFooter = React5.forwardRef((_a, ref) => {
|
|
278
309
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
279
310
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
280
311
|
"div",
|
|
@@ -286,7 +317,7 @@ var SheetFooter = React2.forwardRef((_a, ref) => {
|
|
|
286
317
|
);
|
|
287
318
|
});
|
|
288
319
|
SheetFooter.displayName = "SheetFooter";
|
|
289
|
-
var SheetTitle =
|
|
320
|
+
var SheetTitle = React5.forwardRef((_a, ref) => {
|
|
290
321
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
291
322
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
292
323
|
SheetPrimitive.Title,
|
|
@@ -298,7 +329,7 @@ var SheetTitle = React2.forwardRef((_a, ref) => {
|
|
|
298
329
|
);
|
|
299
330
|
});
|
|
300
331
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
301
|
-
var SheetDescription =
|
|
332
|
+
var SheetDescription = React5.forwardRef((_a, ref) => {
|
|
302
333
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
303
334
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
304
335
|
SheetPrimitive.Description,
|
|
@@ -311,7 +342,7 @@ var SheetDescription = React2.forwardRef((_a, ref) => {
|
|
|
311
342
|
});
|
|
312
343
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
313
344
|
|
|
314
|
-
// src/tooltip.tsx
|
|
345
|
+
// src/components/tooltip.tsx
|
|
315
346
|
|
|
316
347
|
|
|
317
348
|
|
|
@@ -320,7 +351,6 @@ SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
|
320
351
|
|
|
321
352
|
|
|
322
353
|
var _reacttooltip = require('@radix-ui/react-tooltip');
|
|
323
|
-
require('./tooltip.css');
|
|
324
354
|
|
|
325
355
|
function Tooltip({
|
|
326
356
|
content,
|
|
@@ -375,29 +405,27 @@ function Tooltip({
|
|
|
375
405
|
);
|
|
376
406
|
}
|
|
377
407
|
|
|
378
|
-
// src/chatbot-sheet.tsx
|
|
408
|
+
// src/components/chatbot-sheet.tsx
|
|
379
409
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
/* @__PURE__ */ _jsxruntime.
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
}
|
|
400
|
-
);
|
|
410
|
+
function ChatbotSheet(_a) {
|
|
411
|
+
var _b = _a, { sheetStyle } = _b, props = __objRest(_b, ["sheetStyle"]);
|
|
412
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Sheet, { children: [
|
|
413
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
414
|
+
Tooltip,
|
|
415
|
+
{
|
|
416
|
+
side: "top",
|
|
417
|
+
align: "end",
|
|
418
|
+
content: "AI\u306B\u8CEA\u554F\u3057\u3066\u307F\u307E\u3057\u3087\u3046",
|
|
419
|
+
trigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SheetTrigger, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EcforceAiIcon, {}) })
|
|
420
|
+
}
|
|
421
|
+
),
|
|
422
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, SheetContent, { style: sheetStyle, children: [
|
|
423
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, SheetTitle, { children: "AI\u306B\u8CEA\u554F\u3057\u3066\u307F\u307E\u3057\u3087\u3046" }),
|
|
424
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, SheetDescription, { children: "AI\u306B\u8CEA\u554F\u3057\u3066\u307F\u307E\u3057\u3087\u3046" }),
|
|
425
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatbotFrame, __spreadValues({}, props))
|
|
426
|
+
] })
|
|
427
|
+
] });
|
|
428
|
+
}
|
|
401
429
|
function EcforceAiIcon() {
|
|
402
430
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
403
431
|
"svg",
|
|
@@ -432,4 +460,5 @@ function EcforceAiIcon() {
|
|
|
432
460
|
|
|
433
461
|
|
|
434
462
|
|
|
435
|
-
|
|
463
|
+
|
|
464
|
+
exports.ChatbotFrame = ChatbotFrame; exports.ChatbotProvider = ChatbotProvider; exports.ChatbotSheet = ChatbotSheet; exports.Sheet = Sheet; exports.SheetClose = SheetClose; exports.SheetContent = SheetContent; exports.SheetDescription = SheetDescription; exports.SheetFooter = SheetFooter; exports.SheetHeader = SheetHeader; exports.SheetTitle = SheetTitle; exports.SheetTrigger = SheetTrigger; exports.Tooltip = Tooltip; exports.useChatbot = useChatbot; exports.useChatbotConfig = useChatbotConfig;
|