@super_studio/ecforce-ai-agent-react 1.4.0-canary.2 → 1.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.
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
- import { useChatbot } from "./provider/chatbot-provider.mjs";
4
3
  import { PROD_CHATBOT_URL } from "../lib/constants.mjs";
4
+ import { useChatbot } from "./provider/chatbot-provider.mjs";
5
5
  import React from "react";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { ChatbotFrameProps } from "./chatbot-frame.mjs";
2
2
  import React from "react";
3
- import * as react_jsx_runtime1 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/components/chatbot-sheet.d.ts
6
6
  type ChatbotSheetProps = ChatbotFrameProps & {
@@ -9,7 +9,7 @@ type ChatbotSheetProps = ChatbotFrameProps & {
9
9
  declare function ChatbotSheet({
10
10
  sheetStyle,
11
11
  ...props
12
- }: ChatbotSheetProps): react_jsx_runtime1.JSX.Element;
12
+ }: ChatbotSheetProps): react_jsx_runtime0.JSX.Element;
13
13
  //#endregion
14
14
  export { ChatbotSheet };
15
15
  //# sourceMappingURL=chatbot-sheet.d.mts.map
@@ -1,7 +1,7 @@
1
1
  import { RegisteredClientTool } from "../../lib/client-tools.mjs";
2
2
  import { InitProps, MCP, SendAppMessagePayload } from "./use-chatbot-frame-handler.mjs";
3
3
  import React from "react";
4
- import * as react_jsx_runtime0 from "react/jsx-runtime";
4
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
5
5
 
6
6
  //#region src/components/provider/chatbot-provider.d.ts
7
7
  type ChatbotContextType = {
@@ -77,7 +77,7 @@ type ChatbotProviderProps = {
77
77
  };
78
78
  declare function ChatbotProvider({
79
79
  children
80
- }: ChatbotProviderProps): react_jsx_runtime0.JSX.Element;
80
+ }: ChatbotProviderProps): react_jsx_runtime1.JSX.Element;
81
81
  //#endregion
82
82
  export { ChatbotProvider, useChatbot };
83
83
  //# sourceMappingURL=chatbot-provider.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-provider.mjs","names":[],"sources":["../../../src/components/provider/chatbot-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport type { RegisteredClientTool } from \"../../lib/client-tools\";\nimport {\n useChatbotFrameHandler,\n type InitProps,\n type MCP,\n type SendAppMessagePayload,\n} from \"./use-chatbot-frame-handler\";\nimport { useChatbotWindowStates } from \"./use-chatbot-window-states\";\n\ntype ChatbotContextType = {\n /** 1回チャットボットを開いたら、固定でtrueになる */\n hasOpened: boolean;\n /** チャットボットを開いているか */\n open: boolean;\n /** チャットボットを開く */\n setOpen: (open: boolean) => void;\n /** チャットボットを展開しているか */\n isExpanded: boolean;\n /** チャットボットを展開する */\n setIsExpanded: (expanded: boolean) => void;\n /** チャットボットをフルスクリーンにしているか */\n isFullScreen: boolean;\n /** チャットボットをフルスクリーンにする */\n setIsFullScreen: (fullScreen: boolean) => void;\n /** チャットボットを初期化 */\n init: (props: InitProps) => void;\n /** MCPを設定 */\n setMcps: (mcps: MCP[]) => void;\n /** アプリ名を設定 */\n setAppName: (appName: string) => void;\n /** セッショントークンを設定 */\n setSessionToken: (sessionToken: string) => void;\n /** アプリからメッセージを送信 */\n sendAppMessage: (payload: SendAppMessagePayload) => void;\n /** Client Toolを登録 */\n registerClientTool: (tool: RegisteredClientTool) => void;\n /** Client Toolを解除 */\n unregisterClientTool: (name: string) => void;\n /** チャットボットが準備できたか */\n isReady: boolean;\n /** チャットボットが初期化されたか */\n isInitialized: boolean;\n /**\n * @internal\n * チャットボットのiframe要素を設定\n */\n setIframeEl: (iframeEl: HTMLIFrameElement | null) => void;\n};\n\nconst ChatbotContext = React.createContext<ChatbotContextType | undefined>(\n undefined,\n);\n\n/**\n * `ChatbotProvider` が提供するチャットボット状態と操作 API を取得します。\n *\n * @returns チャットボットの表示状態、初期化 API、Client Tool の登録 API を含むコンテキスト値。\n *\n * @example\n * ```tsx\n * import { useChatbot } from \"@super_studio/ecforce-ai-agent-react\";\n *\n * export function OpenChatButton() {\n * const { open, setOpen, sendAppMessage } = useChatbot();\n *\n * return (\n * <button\n * type=\"button\"\n * onClick={() => {\n * setOpen(!open);\n * sendAppMessage({\n * message: \"EC Forceの注文状況を確認したいです\",\n * });\n * }}\n * >\n * Open chat\n * </button>\n * );\n * }\n * ```\n */\nexport function useChatbot() {\n const context = React.useContext(ChatbotContext);\n if (!context) {\n throw new Error(\"useChatbot must be used within a ChatbotProvider\");\n }\n return context;\n}\n\ntype ChatbotProviderProps = {\n children: React.ReactNode;\n};\n\nexport function ChatbotProvider({ children }: ChatbotProviderProps) {\n const {\n hasOpened,\n open,\n isExpanded,\n isFullScreen,\n setOpen,\n setIsExpanded,\n setIsFullScreen,\n } = useChatbotWindowStates();\n const {\n setMcps,\n setAppName,\n setSessionToken,\n sendAppMessage,\n registerClientTool,\n unregisterClientTool,\n init,\n isReady,\n isInitialized,\n setIframeEl,\n } = useChatbotFrameHandler({\n setOpen,\n setIsExpanded,\n setIsFullScreen,\n });\n\n const value = {\n hasOpened,\n open,\n setOpen,\n isExpanded,\n setIsExpanded,\n isFullScreen,\n setIsFullScreen,\n setSessionToken,\n sendAppMessage,\n registerClientTool,\n unregisterClientTool,\n init,\n setMcps,\n setAppName,\n isReady,\n isInitialized,\n setIframeEl,\n };\n\n return (\n <ChatbotContext.Provider value={value}>{children}</ChatbotContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;AAoDA,MAAM,iBAAiB,MAAM,cAC3B,OACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BD,SAAgB,aAAa;CAC3B,MAAM,UAAU,MAAM,WAAW,eAAe;AAChD,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,mDAAmD;AAErE,QAAO;;AAOT,SAAgB,gBAAgB,EAAE,YAAkC;CAClE,MAAM,EACJ,WACA,MACA,YACA,cACA,SACA,eACA,oBACE,wBAAwB;CAC5B,MAAM,EACJ,SACA,YACA,iBACA,gBACA,oBACA,sBACA,MACA,SACA,eACA,gBACE,uBAAuB;EACzB;EACA;EACA;EACD,CAAC;CAEF,MAAM,QAAQ;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;AAED,QACE,oBAAC,eAAe;EAAgB;EAAQ;GAAmC"}
1
+ {"version":3,"file":"chatbot-provider.mjs","names":[],"sources":["../../../src/components/provider/chatbot-provider.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport type { RegisteredClientTool } from \"../../lib/client-tools\";\nimport {\n type InitProps,\n type MCP,\n type SendAppMessagePayload,\n useChatbotFrameHandler,\n} from \"./use-chatbot-frame-handler\";\nimport { useChatbotWindowStates } from \"./use-chatbot-window-states\";\n\ntype ChatbotContextType = {\n /** 1回チャットボットを開いたら、固定でtrueになる */\n hasOpened: boolean;\n /** チャットボットを開いているか */\n open: boolean;\n /** チャットボットを開く */\n setOpen: (open: boolean) => void;\n /** チャットボットを展開しているか */\n isExpanded: boolean;\n /** チャットボットを展開する */\n setIsExpanded: (expanded: boolean) => void;\n /** チャットボットをフルスクリーンにしているか */\n isFullScreen: boolean;\n /** チャットボットをフルスクリーンにする */\n setIsFullScreen: (fullScreen: boolean) => void;\n /** チャットボットを初期化 */\n init: (props: InitProps) => void;\n /** MCPを設定 */\n setMcps: (mcps: MCP[]) => void;\n /** アプリ名を設定 */\n setAppName: (appName: string) => void;\n /** セッショントークンを設定 */\n setSessionToken: (sessionToken: string) => void;\n /** アプリからメッセージを送信 */\n sendAppMessage: (payload: SendAppMessagePayload) => void;\n /** Client Toolを登録 */\n registerClientTool: (tool: RegisteredClientTool) => void;\n /** Client Toolを解除 */\n unregisterClientTool: (name: string) => void;\n /** チャットボットが準備できたか */\n isReady: boolean;\n /** チャットボットが初期化されたか */\n isInitialized: boolean;\n /**\n * @internal\n * チャットボットのiframe要素を設定\n */\n setIframeEl: (iframeEl: HTMLIFrameElement | null) => void;\n};\n\nconst ChatbotContext = React.createContext<ChatbotContextType | undefined>(\n undefined,\n);\n\n/**\n * `ChatbotProvider` が提供するチャットボット状態と操作 API を取得します。\n *\n * @returns チャットボットの表示状態、初期化 API、Client Tool の登録 API を含むコンテキスト値。\n *\n * @example\n * ```tsx\n * import { useChatbot } from \"@super_studio/ecforce-ai-agent-react\";\n *\n * export function OpenChatButton() {\n * const { open, setOpen, sendAppMessage } = useChatbot();\n *\n * return (\n * <button\n * type=\"button\"\n * onClick={() => {\n * setOpen(!open);\n * sendAppMessage({\n * message: \"EC Forceの注文状況を確認したいです\",\n * });\n * }}\n * >\n * Open chat\n * </button>\n * );\n * }\n * ```\n */\nexport function useChatbot() {\n const context = React.useContext(ChatbotContext);\n if (!context) {\n throw new Error(\"useChatbot must be used within a ChatbotProvider\");\n }\n return context;\n}\n\ntype ChatbotProviderProps = {\n children: React.ReactNode;\n};\n\nexport function ChatbotProvider({ children }: ChatbotProviderProps) {\n const {\n hasOpened,\n open,\n isExpanded,\n isFullScreen,\n setOpen,\n setIsExpanded,\n setIsFullScreen,\n } = useChatbotWindowStates();\n const {\n setMcps,\n setAppName,\n setSessionToken,\n sendAppMessage,\n registerClientTool,\n unregisterClientTool,\n init,\n isReady,\n isInitialized,\n setIframeEl,\n } = useChatbotFrameHandler({\n setOpen,\n setIsExpanded,\n setIsFullScreen,\n });\n\n const value = {\n hasOpened,\n open,\n setOpen,\n isExpanded,\n setIsExpanded,\n isFullScreen,\n setIsFullScreen,\n setSessionToken,\n sendAppMessage,\n registerClientTool,\n unregisterClientTool,\n init,\n setMcps,\n setAppName,\n isReady,\n isInitialized,\n setIframeEl,\n };\n\n return (\n <ChatbotContext.Provider value={value}>{children}</ChatbotContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;AAoDA,MAAM,iBAAiB,MAAM,cAC3B,OACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BD,SAAgB,aAAa;CAC3B,MAAM,UAAU,MAAM,WAAW,eAAe;AAChD,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,mDAAmD;AAErE,QAAO;;AAOT,SAAgB,gBAAgB,EAAE,YAAkC;CAClE,MAAM,EACJ,WACA,MACA,YACA,cACA,SACA,eACA,oBACE,wBAAwB;CAC5B,MAAM,EACJ,SACA,YACA,iBACA,gBACA,oBACA,sBACA,MACA,SACA,eACA,gBACE,uBAAuB;EACzB;EACA;EACA;EACD,CAAC;CAEF,MAAM,QAAQ;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;AAED,QACE,oBAAC,eAAe;EAAgB;EAAQ;GAAmC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.mjs","names":["React"],"sources":["../../src/components/sheet.tsx"],"sourcesContent":["\"use client\";\n\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport * as React from \"react\";\nimport { useChatbot } from \"./provider/chatbot-provider\";\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n const { open, setOpen } = useChatbot();\n return (\n <SheetPrimitive.Root\n data-slot=\"sheet\"\n modal={false}\n open={open}\n onOpenChange={setOpen}\n {...props}\n />\n );\n}\n\nconst SheetTrigger = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Trigger\n ref={ref}\n data-slot=\"sheet-trigger\"\n className={`chatbot-trigger ${className || \"\"}`}\n {...props}\n />\n));\nSheetTrigger.displayName = SheetPrimitive.Trigger.displayName;\n\nconst SheetClose = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Close>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Close>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Close\n ref={ref}\n data-slot=\"sheet-close\"\n className={`chatbot-sheet-close ${className || \"\"}`}\n {...props}\n />\n));\nSheetClose.displayName = SheetPrimitive.Close.displayName;\n\nfunction SheetPortal({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>\n>(({ className, children, style, ...props }, ref) => {\n const { isExpanded, isFullScreen, open, hasOpened } = useChatbot();\n const width = isFullScreen ? \"100%\" : isExpanded ? \"848px\" : \"400px\";\n\n // Use transform for better performance instead of right property\n const translateX = open ? \"0\" : \"100%\";\n\n // Create style object with CSS custom property for smoother animation\n const contentStyle = {\n \"--sheet-width\": width,\n transform: `translateX(${translateX})`,\n ...style,\n } as React.CSSProperties & { \"--sheet-width\": string };\n\n const classNames = [\n \"chatbot-sheet-content\",\n isExpanded && !isFullScreen ? \"chatbot-sheet-expanded\" : \"\",\n isFullScreen ? \"chatbot-sheet-fullscreen\" : \"\",\n className || \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <SheetPortal forceMount={hasOpened || undefined}>\n <SheetPrimitive.Content\n ref={ref}\n data-slot=\"sheet-content\"\n forceMount={hasOpened || undefined}\n onInteractOutside={(e) => e.preventDefault()}\n className={classNames}\n style={contentStyle}\n {...props}\n >\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n});\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"sheet-header\"\n className={`chatbot-sheet-header ${className || \"\"}`}\n {...props}\n />\n));\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"sheet-footer\"\n className={`chatbot-sheet-footer ${className || \"\"}`}\n {...props}\n />\n));\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n data-slot=\"sheet-title\"\n className={`chatbot-sheet-title ${className || \"\"}`}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n data-slot=\"sheet-description\"\n className={`chatbot-sheet-description ${className || \"\"}`}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n"],"mappings":";;;;;;;;;;;;mBAsBK,4BAaA;CAmBA;CAAW;CAAU;iBA4CrB,4BAaA,4BAaA,4BAaA;AAnIL,SAAS,MAAM,MAAgE;KAA3D;CAClB,MAAM,EAAE,MAAM,YAAY,YAAY;AACtC,QACE,oBAAC,eAAe;EACd,aAAU;EACV,OAAO;EACD;EACN,cAAc;IACV,OACJ;;AAIN,MAAM,eAAeA,QAAM,YAGxB,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC,eAAe;EACT;EACL,aAAU;EACV,WAAW,mBAAmB,aAAa;IACvC,OACJ;EACF;AACF,aAAa,cAAc,eAAe,QAAQ;AAElD,MAAM,aAAaA,QAAM,YAGtB,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC,eAAe;EACT;EACL,aAAU;EACV,WAAW,uBAAuB,aAAa;IAC3C,OACJ;EACF;AACF,WAAW,cAAc,eAAe,MAAM;AAE9C,SAAS,YAAY,OAEkC;KADlD;AAEH,QAAO,oBAAC,eAAe,yBAAO,aAAU,kBAAmB,OAAS;;AAGtE,MAAM,eAAeA,QAAM,YAGxB,OAA0C,QAAQ;KAAlD,EAAE,WAAW,UAAU,iBAAU;CAClC,MAAM,EAAE,YAAY,cAAc,MAAM,cAAc,YAAY;CAClE,MAAM,QAAQ,eAAe,SAAS,aAAa,UAAU;CAG7D,MAAM,aAAa,OAAO,MAAM;CAGhC,MAAM;EACJ,iBAAiB;EACjB,WAAW,cAAc,WAAW;IACjC;CAGL,MAAM,aAAa;EACjB;EACA,cAAc,CAAC,eAAe,2BAA2B;EACzD,eAAe,6BAA6B;EAC5C,aAAa;EACd,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;AAEZ,QACE,oBAAC;EAAY,YAAY,aAAa;YACpC,oBAAC,eAAe;GACT;GACL,aAAU;GACV,YAAY,aAAa;GACzB,oBAAoB,MAAM,EAAE,gBAAgB;GAC5C,WAAW;GACX,OAAO;KACH,cAEH,YACsB;GACb;EAEhB;AACF,aAAa,cAAc,eAAe,QAAQ;AAElD,MAAM,cAAcA,QAAM,YAGvB,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC;EACM;EACL,aAAU;EACV,WAAW,wBAAwB,aAAa;IAC5C,OACJ;EACF;AACF,YAAY,cAAc;AAE1B,MAAM,cAAcA,QAAM,YAGvB,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC;EACM;EACL,aAAU;EACV,WAAW,wBAAwB,aAAa;IAC5C,OACJ;EACF;AACF,YAAY,cAAc;AAE1B,MAAM,aAAaA,QAAM,YAGtB,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC,eAAe;EACT;EACL,aAAU;EACV,WAAW,uBAAuB,aAAa;IAC3C,OACJ;EACF;AACF,WAAW,cAAc,eAAe,MAAM;AAE9C,MAAM,mBAAmBA,QAAM,YAG5B,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC,eAAe;EACT;EACL,aAAU;EACV,WAAW,6BAA6B,aAAa;IACjD,OACJ;EACF;AACF,iBAAiB,cAAc,eAAe,YAAY"}
1
+ {"version":3,"file":"sheet.mjs","names":["React"],"sources":["../../src/components/sheet.tsx"],"sourcesContent":["\"use client\";\n\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport * as React from \"react\";\nimport { useChatbot } from \"./provider/chatbot-provider\";\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n const { open, setOpen } = useChatbot();\n return (\n <SheetPrimitive.Root\n data-slot=\"sheet\"\n modal={false}\n open={open}\n onOpenChange={setOpen}\n {...props}\n />\n );\n}\n\nconst SheetTrigger = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Trigger\n ref={ref}\n data-slot=\"sheet-trigger\"\n className={`chatbot-trigger ${className || \"\"}`}\n {...props}\n />\n));\nSheetTrigger.displayName = SheetPrimitive.Trigger.displayName;\n\nconst SheetClose = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Close>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Close>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Close\n ref={ref}\n data-slot=\"sheet-close\"\n className={`chatbot-sheet-close ${className || \"\"}`}\n {...props}\n />\n));\nSheetClose.displayName = SheetPrimitive.Close.displayName;\n\nfunction SheetPortal({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>\n>(({ className, children, style, ...props }, ref) => {\n const { isExpanded, isFullScreen, open, hasOpened } = useChatbot();\n const width = isFullScreen ? \"100%\" : isExpanded ? \"848px\" : \"400px\";\n\n // Use transform for better performance instead of right property\n const translateX = open ? \"0\" : \"100%\";\n\n // Create style object with CSS custom property for smoother animation\n const contentStyle = {\n \"--sheet-width\": width,\n transform: `translateX(${translateX})`,\n ...style,\n } as React.CSSProperties & { \"--sheet-width\": string };\n\n const classNames = [\n \"chatbot-sheet-content\",\n isExpanded && !isFullScreen ? \"chatbot-sheet-expanded\" : \"\",\n isFullScreen ? \"chatbot-sheet-fullscreen\" : \"\",\n className || \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <SheetPortal forceMount={hasOpened || undefined}>\n <SheetPrimitive.Content\n ref={ref}\n data-slot=\"sheet-content\"\n forceMount={hasOpened || undefined}\n onInteractOutside={(e) => e.preventDefault()}\n className={classNames}\n style={contentStyle}\n {...props}\n >\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n});\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"sheet-header\"\n className={`chatbot-sheet-header ${className || \"\"}`}\n {...props}\n />\n));\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"sheet-footer\"\n className={`chatbot-sheet-footer ${className || \"\"}`}\n {...props}\n />\n));\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n data-slot=\"sheet-title\"\n className={`chatbot-sheet-title ${className || \"\"}`}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n data-slot=\"sheet-description\"\n className={`chatbot-sheet-description ${className || \"\"}`}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n};\n"],"mappings":";;;;;;;;;;;;mBAsBK,4BAaA;CAmBA;CAAW;CAAU;iBA4CrB,4BAaA,4BAaA,4BAaA;AAnIL,SAAS,MAAM,MAAgE;KAA3D;CAClB,MAAM,EAAE,MAAM,YAAY,YAAY;AACtC,QACE,oBAAC,eAAe;EACd,aAAU;EACV,OAAO;EACD;EACN,cAAc;IACV,OACJ;;AAIN,MAAM,eAAeA,QAAM,YAGxB,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC,eAAe;EACT;EACL,aAAU;EACV,WAAW,mBAAmB,aAAa;IACvC,OACJ;EACF;AACF,aAAa,cAAc,eAAe,QAAQ;AAElD,MAAM,aAAaA,QAAM,YAGtB,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC,eAAe;EACT;EACL,aAAU;EACV,WAAW,uBAAuB,aAAa;IAC3C,OACJ;EACF;AACF,WAAW,cAAc,eAAe,MAAM;AAE9C,SAAS,YAAY,OAEkC;KADlD;AAEH,QAAO,oBAAC,eAAe,yBAAO,aAAU,kBAAmB,OAAS;;AAGtE,MAAM,eAAeA,QAAM,YAGxB,OAA0C,QAAQ;KAAlD,EAAE,WAAW,UAAU,iBAAU;CAClC,MAAM,EAAE,YAAY,cAAc,MAAM,cAAc,YAAY;CAClE,MAAM,QAAQ,eAAe,SAAS,aAAa,UAAU;CAG7D,MAAM,aAAa,OAAO,MAAM;CAGhC,MAAM;EACJ,iBAAiB;EACjB,WAAW,cAAc,WAAW;IACjC;CAGL,MAAM,aAAa;EACjB;EACA,cAAc,CAAC,eAAe,2BAA2B;EACzD,eAAe,6BAA6B;EAC5C,aAAa;EACd,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;AAEZ,QACE,oBAAC;EAAY,YAAY,aAAa;YACpC,oBAAC,eAAe;GACT;GACL,aAAU;GACV,YAAY,aAAa;GACzB,oBAAoB,MAAM,EAAE,gBAAgB;GAC5C,WAAW;GACX,OAAO;KACH,cAEH,YACsB;GACb;EAEhB;AACF,aAAa,cAAc,eAAe,QAAQ;AAElD,MAAM,cAAcA,QAAM,YAGvB,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC;EACM;EACL,aAAU;EACV,WAAW,wBAAwB,aAAa;IAC5C,OACJ;EACF;AACF,YAAY,cAAc;AAE1B,MAAM,cAAcA,QAAM,YAGvB,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC;EACM;EACL,aAAU;EACV,WAAW,wBAAwB,aAAa;IAC5C,OACJ;EACF;AACF,YAAY,cAAc;AAE1B,MAAM,aAAaA,QAAM,YAGtB,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC,eAAe;EACT;EACL,aAAU;EACV,WAAW,uBAAuB,aAAa;IAC3C,OACJ;EACF;AACF,WAAW,cAAc,eAAe,MAAM;AAE9C,MAAM,mBAAmBA,QAAM,YAG5B,OAAyB,QAAQ;KAAjC,EAAE,qBAAc;AAAiB,QAClC,oBAAC,eAAe;EACT;EACL,aAAU;EACV,WAAW,6BAA6B,aAAa;IACjD,OACJ;EACF;AACF,iBAAiB,cAAc,eAAe,YAAY"}
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
- import { ClientToolDefinition, ClientToolExecuteRequest, ClientToolJsonSchema, RegisteredClientTool, UseClientToolOptions, useClientTool } from "./lib/client-tools.mjs";
2
- import { ChatbotProvider, useChatbot } from "./components/provider/chatbot-provider.mjs";
3
1
  import { ChatbotFrame, ChatbotFrameProps, SessionData, UseSessionProps, useSession } from "./components/chatbot-frame.mjs";
4
2
  import { ChatbotSheet } from "./components/chatbot-sheet.mjs";
3
+ import { ClientToolDefinition, ClientToolExecuteRequest, ClientToolJsonSchema, RegisteredClientTool, UseClientToolOptions, useClientTool } from "./lib/client-tools.mjs";
4
+ import { ChatbotProvider, useChatbot } from "./components/provider/chatbot-provider.mjs";
5
5
  import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from "./components/sheet.mjs";
6
6
  import { Tooltip } from "./components/tooltip.mjs";
7
7
  export { ChatbotFrame, ChatbotFrameProps, ChatbotProvider, ChatbotSheet, ClientToolDefinition, ClientToolExecuteRequest, ClientToolJsonSchema, RegisteredClientTool, SessionData, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Tooltip, UseClientToolOptions, UseSessionProps, useChatbot, useClientTool, useSession };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super_studio/ecforce-ai-agent-react",
3
- "version": "1.4.0-canary.2",
3
+ "version": "1.4.0",
4
4
  "main": "./dist/index.mjs",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.mts",
@@ -3,10 +3,10 @@
3
3
  import React from "react";
4
4
  import type { RegisteredClientTool } from "../../lib/client-tools";
5
5
  import {
6
- useChatbotFrameHandler,
7
6
  type InitProps,
8
7
  type MCP,
9
8
  type SendAppMessagePayload,
9
+ useChatbotFrameHandler,
10
10
  } from "./use-chatbot-frame-handler";
11
11
  import { useChatbotWindowStates } from "./use-chatbot-window-states";
12
12
 
@@ -147,11 +147,11 @@ SheetDescription.displayName = SheetPrimitive.Description.displayName;
147
147
 
148
148
  export {
149
149
  Sheet,
150
- SheetTrigger,
151
150
  SheetClose,
152
151
  SheetContent,
153
- SheetHeader,
152
+ SheetDescription,
154
153
  SheetFooter,
154
+ SheetHeader,
155
155
  SheetTitle,
156
- SheetDescription,
156
+ SheetTrigger,
157
157
  };
package/src/index.ts CHANGED
@@ -1,6 +1,6 @@
1
- export * from "./components/provider/chatbot-provider";
2
1
  export * from "./components/chatbot-frame";
3
2
  export * from "./components/chatbot-sheet";
3
+ export * from "./components/provider/chatbot-provider";
4
4
  export * from "./components/sheet";
5
5
  export * from "./components/tooltip";
6
6
  export * from "./lib/client-tools";