@super_studio/ecforce-ai-agent-react 0.6.0-canary.5 → 1.0.0-canary.7

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 (74) hide show
  1. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.mjs +14 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/extends.mjs +13 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectDestructuringEmpty.mjs +7 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.mjs +27 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectWithoutProperties.mjs +15 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectWithoutPropertiesLoose.mjs +13 -0
  7. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.mjs +16 -0
  8. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.mjs +11 -0
  9. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.mjs +12 -0
  10. package/dist/components/chatbot-frame.d.mts +53 -0
  11. package/dist/components/chatbot-frame.d.mts.map +1 -0
  12. package/dist/components/chatbot-frame.mjs +99 -0
  13. package/dist/components/chatbot-frame.mjs.map +1 -0
  14. package/dist/components/chatbot-sheet.d.mts +15 -0
  15. package/dist/components/chatbot-sheet.d.mts.map +1 -0
  16. package/dist/components/chatbot-sheet.mjs +40 -0
  17. package/dist/components/chatbot-sheet.mjs.map +1 -0
  18. package/dist/components/lottie-ai-icon.mjs +60 -0
  19. package/dist/components/lottie-ai-icon.mjs.map +1 -0
  20. package/dist/components/provider/chatbot-provider.d.mts +48 -0
  21. package/dist/components/provider/chatbot-provider.d.mts.map +1 -0
  22. package/dist/components/provider/chatbot-provider.mjs +46 -0
  23. package/dist/components/provider/chatbot-provider.mjs.map +1 -0
  24. package/dist/components/provider/use-chatbot-frame-handler.d.mts +17 -0
  25. package/dist/components/provider/use-chatbot-frame-handler.d.mts.map +1 -0
  26. package/dist/components/provider/use-chatbot-frame-handler.mjs +93 -0
  27. package/dist/components/provider/use-chatbot-frame-handler.mjs.map +1 -0
  28. package/dist/components/provider/use-chatbot-window-states.mjs +27 -0
  29. package/dist/components/provider/use-chatbot-window-states.mjs.map +1 -0
  30. package/dist/components/sheet.d.mts +18 -0
  31. package/dist/components/sheet.d.mts.map +1 -0
  32. package/dist/components/sheet.mjs +117 -0
  33. package/dist/components/sheet.mjs.map +1 -0
  34. package/dist/components/tooltip.d.mts +38 -0
  35. package/dist/components/tooltip.d.mts.map +1 -0
  36. package/dist/components/tooltip.mjs +36 -0
  37. package/dist/components/tooltip.mjs.map +1 -0
  38. package/dist/index.d.mts +6 -0
  39. package/dist/index.mjs +6 -618
  40. package/dist/lib/constants.mjs +6 -0
  41. package/dist/lib/constants.mjs.map +1 -0
  42. package/package.json +16 -25
  43. package/src/components/chatbot-frame.tsx +2 -0
  44. package/src/components/chatbot-sheet.tsx +2 -0
  45. package/src/components/lottie-ai-icon.tsx +2 -0
  46. package/src/components/provider/chatbot-provider.tsx +2 -0
  47. package/src/components/provider/use-chatbot-frame-handler.tsx +2 -0
  48. package/src/components/provider/use-chatbot-window-states.tsx +2 -0
  49. package/src/components/sheet.tsx +2 -0
  50. package/src/components/tooltip.tsx +2 -0
  51. package/src/styles/chatbot-sheet.css +1 -1
  52. package/dist/components/chatbot-frame.d.ts +0 -39
  53. package/dist/components/chatbot-frame.d.ts.map +0 -1
  54. package/dist/components/chatbot-sheet.d.ts +0 -8
  55. package/dist/components/chatbot-sheet.d.ts.map +0 -1
  56. package/dist/components/lottie-ai-icon.d.ts +0 -13
  57. package/dist/components/lottie-ai-icon.d.ts.map +0 -1
  58. package/dist/components/provider/chatbot-provider.d.ts +0 -42
  59. package/dist/components/provider/chatbot-provider.d.ts.map +0 -1
  60. package/dist/components/provider/use-chatbot-frame-handler.d.ts +0 -57
  61. package/dist/components/provider/use-chatbot-frame-handler.d.ts.map +0 -1
  62. package/dist/components/provider/use-chatbot-window-states.d.ts +0 -11
  63. package/dist/components/provider/use-chatbot-window-states.d.ts.map +0 -1
  64. package/dist/components/sheet.d.ts +0 -12
  65. package/dist/components/sheet.d.ts.map +0 -1
  66. package/dist/components/tooltip.d.ts +0 -20
  67. package/dist/components/tooltip.d.ts.map +0 -1
  68. package/dist/index.d.ts +0 -6
  69. package/dist/index.d.ts.map +0 -1
  70. package/dist/index.js +0 -619
  71. package/dist/lib/constants.d.ts +0 -2
  72. package/dist/lib/constants.d.ts.map +0 -1
  73. package/dist/styles/chatbot-sheet.css +0 -122
  74. package/dist/styles/preset.css +0 -18
@@ -0,0 +1,93 @@
1
+ "use client";
2
+
3
+ import { _objectSpread2 } from "../../_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.mjs";
4
+ import React from "react";
5
+
6
+ //#region src/components/provider/use-chatbot-frame-handler.tsx
7
+ function useChatbotFrameHandler({ setOpen, setIsExpanded, setIsFullScreen }) {
8
+ const [iframeEl, setIframeEl] = React.useState(null);
9
+ const [isReady, setIsReady] = React.useState(false);
10
+ const [isInitialized, setIsInitialized] = React.useState(false);
11
+ const postMessage = React.useCallback((message) => {
12
+ if (iframeEl === null || iframeEl === void 0 ? void 0 : iframeEl.contentWindow) {
13
+ if (process.env.NODE_ENV === "development") console.log("sending message to iframe", message);
14
+ iframeEl.contentWindow.postMessage(message, "*");
15
+ }
16
+ }, [iframeEl]);
17
+ const init = React.useCallback((props) => {
18
+ postMessage(_objectSpread2({ type: "init" }, props));
19
+ }, [postMessage]);
20
+ const setMcps = React.useCallback((mcps) => {
21
+ postMessage({
22
+ type: "mcps",
23
+ mcps
24
+ });
25
+ }, [postMessage]);
26
+ const setAppName = React.useCallback((appName) => {
27
+ postMessage({
28
+ type: "appName",
29
+ appName
30
+ });
31
+ }, [postMessage]);
32
+ const setSessionToken = React.useCallback((sessionToken) => {
33
+ postMessage({
34
+ type: "sessionToken",
35
+ sessionToken
36
+ });
37
+ }, [postMessage]);
38
+ React.useEffect(() => {
39
+ const iframe = iframeEl;
40
+ if (!iframe) return;
41
+ const handleMessage = (event) => {
42
+ var _event$data;
43
+ if (process.env.NODE_ENV === "development") console.log("iframe message", event.data);
44
+ switch ((_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.type) {
45
+ case "CHATBOT_READY":
46
+ setIsReady(true);
47
+ break;
48
+ case "CHATBOT_INITIALIZED":
49
+ setIsInitialized(true);
50
+ break;
51
+ case "CLOSE_CHATBOT":
52
+ setOpen(false);
53
+ break;
54
+ case "EXPAND_CHATBOT":
55
+ setIsExpanded(true);
56
+ break;
57
+ case "SHRINK_CHATBOT":
58
+ setIsExpanded(false);
59
+ break;
60
+ case "FULLSCREEN_CHATBOT":
61
+ setIsFullScreen(true);
62
+ break;
63
+ case "EXIT_FULLSCREEN_CHATBOT":
64
+ setIsFullScreen(false);
65
+ break;
66
+ case "RELOAD_CHATBOT":
67
+ iframe.src = iframe.src;
68
+ break;
69
+ }
70
+ };
71
+ const handleIframeLoad = () => {
72
+ window.addEventListener("message", handleMessage);
73
+ };
74
+ iframe.addEventListener("load", handleIframeLoad);
75
+ return () => {
76
+ window.removeEventListener("message", handleMessage);
77
+ iframe.removeEventListener("load", handleIframeLoad);
78
+ };
79
+ }, [iframeEl]);
80
+ return {
81
+ init,
82
+ setMcps,
83
+ setAppName,
84
+ setSessionToken,
85
+ setIframeEl,
86
+ isReady,
87
+ isInitialized
88
+ };
89
+ }
90
+
91
+ //#endregion
92
+ export { useChatbotFrameHandler };
93
+ //# sourceMappingURL=use-chatbot-frame-handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-chatbot-frame-handler.mjs","names":[],"sources":["../../../src/components/provider/use-chatbot-frame-handler.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\nexport type IframeMessage =\n | { type: \"CHATBOT_READY\" }\n | { type: \"CHATBOT_INITIALIZED\" }\n | { type: \"CLOSE_CHATBOT\" }\n | { type: \"EXPAND_CHATBOT\" }\n | { type: \"SHRINK_CHATBOT\" }\n | { type: \"FULLSCREEN_CHATBOT\" }\n | { type: \"EXIT_FULLSCREEN_CHATBOT\" }\n | { type: \"RELOAD_CHATBOT\" };\n\nexport type MCP = {\n name: string;\n url: string;\n headers?: Record<string, string>;\n};\n\nexport type InitProps = {\n mcps?: MCP[];\n appName?: string;\n sessionToken?: string;\n};\n\nexport type ParentMessage =\n | {\n type: \"mcps\";\n mcps: MCP[];\n }\n | {\n type: \"appName\";\n appName: string;\n }\n | {\n type: \"sessionToken\";\n sessionToken: string;\n }\n | {\n type: \"init\";\n mcps?: MCP[];\n appName?: string;\n sessionToken?: string;\n };\n\nexport function useChatbotFrameHandler({\n setOpen,\n setIsExpanded,\n setIsFullScreen,\n}: {\n setOpen: (open: boolean) => void;\n setIsExpanded: (expanded: boolean) => void;\n setIsFullScreen: (fullScreen: boolean) => void;\n}) {\n const [iframeEl, setIframeEl] = React.useState<HTMLIFrameElement | null>(\n null,\n );\n const [isReady, setIsReady] = React.useState(false);\n const [isInitialized, setIsInitialized] = React.useState(false);\n\n // helper to post message to the iframe\n const postMessage = React.useCallback(\n (message: ParentMessage) => {\n if (iframeEl?.contentWindow) {\n if (process.env.NODE_ENV === \"development\") {\n console.log(\"sending message to iframe\", message);\n }\n iframeEl.contentWindow.postMessage(message, \"*\");\n }\n },\n [iframeEl],\n );\n\n const init = React.useCallback(\n (props: InitProps) => {\n postMessage({\n type: \"init\",\n ...props,\n });\n },\n [postMessage],\n );\n\n const setMcps = React.useCallback(\n (mcps: MCP[]) => {\n postMessage({ type: \"mcps\", mcps });\n },\n [postMessage],\n );\n\n const setAppName = React.useCallback(\n (appName: string) => {\n postMessage({ type: \"appName\", appName });\n },\n [postMessage],\n );\n\n const setSessionToken = React.useCallback(\n (sessionToken: string) => {\n postMessage({ type: \"sessionToken\", sessionToken });\n },\n [postMessage],\n );\n\n // Initialize and setup listeners\n React.useEffect(() => {\n const iframe = iframeEl;\n if (!iframe) {\n return;\n }\n\n const handleMessage = (event: MessageEvent<IframeMessage>) => {\n if (process.env.NODE_ENV === \"development\") {\n console.log(\"iframe message\", event.data);\n }\n // Handle iframe messages\n switch (event.data?.type) {\n case \"CHATBOT_READY\":\n setIsReady(true);\n break;\n case \"CHATBOT_INITIALIZED\":\n setIsInitialized(true);\n break;\n case \"CLOSE_CHATBOT\":\n setOpen(false);\n break;\n case \"EXPAND_CHATBOT\":\n setIsExpanded(true);\n break;\n case \"SHRINK_CHATBOT\":\n setIsExpanded(false);\n break;\n case \"FULLSCREEN_CHATBOT\":\n setIsFullScreen(true);\n break;\n case \"EXIT_FULLSCREEN_CHATBOT\":\n setIsFullScreen(false);\n break;\n case \"RELOAD_CHATBOT\":\n // reload iframe\n iframe.src = iframe.src;\n break;\n }\n };\n\n const handleIframeLoad = () => {\n window.addEventListener(\"message\", handleMessage);\n };\n\n iframe.addEventListener(\"load\", handleIframeLoad);\n\n return () => {\n window.removeEventListener(\"message\", handleMessage);\n iframe.removeEventListener(\"load\", handleIframeLoad);\n };\n }, [iframeEl]); // Run when iframe gets mounted\n\n return {\n init,\n setMcps,\n setAppName,\n setSessionToken,\n setIframeEl,\n isReady,\n isInitialized,\n };\n}\n"],"mappings":";;;;;;AA8CA,SAAgB,uBAAuB,EACrC,SACA,eACA,mBAKC;CACD,MAAM,CAAC,UAAU,eAAe,MAAM,SACpC,KACD;CACD,MAAM,CAAC,SAAS,cAAc,MAAM,SAAS,MAAM;CACnD,MAAM,CAAC,eAAe,oBAAoB,MAAM,SAAS,MAAM;CAG/D,MAAM,cAAc,MAAM,aACvB,YAA2B;AAC1B,0DAAI,SAAU,eAAe;AAC3B,OAAI,QAAQ,IAAI,aAAa,cAC3B,SAAQ,IAAI,6BAA6B,QAAQ;AAEnD,YAAS,cAAc,YAAY,SAAS,IAAI;;IAGpD,CAAC,SAAS,CACX;CAED,MAAM,OAAO,MAAM,aAChB,UAAqB;AACpB,+BACE,MAAM,UACH,OACH;IAEJ,CAAC,YAAY,CACd;CAED,MAAM,UAAU,MAAM,aACnB,SAAgB;AACf,cAAY;GAAE,MAAM;GAAQ;GAAM,CAAC;IAErC,CAAC,YAAY,CACd;CAED,MAAM,aAAa,MAAM,aACtB,YAAoB;AACnB,cAAY;GAAE,MAAM;GAAW;GAAS,CAAC;IAE3C,CAAC,YAAY,CACd;CAED,MAAM,kBAAkB,MAAM,aAC3B,iBAAyB;AACxB,cAAY;GAAE,MAAM;GAAgB;GAAc,CAAC;IAErD,CAAC,YAAY,CACd;AAGD,OAAM,gBAAgB;EACpB,MAAM,SAAS;AACf,MAAI,CAAC,OACH;EAGF,MAAM,iBAAiB,UAAuC;;AAC5D,OAAI,QAAQ,IAAI,aAAa,cAC3B,SAAQ,IAAI,kBAAkB,MAAM,KAAK;AAG3C,0BAAQ,MAAM,gEAAM,MAApB;IACE,KAAK;AACH,gBAAW,KAAK;AAChB;IACF,KAAK;AACH,sBAAiB,KAAK;AACtB;IACF,KAAK;AACH,aAAQ,MAAM;AACd;IACF,KAAK;AACH,mBAAc,KAAK;AACnB;IACF,KAAK;AACH,mBAAc,MAAM;AACpB;IACF,KAAK;AACH,qBAAgB,KAAK;AACrB;IACF,KAAK;AACH,qBAAgB,MAAM;AACtB;IACF,KAAK;AAEH,YAAO,MAAM,OAAO;AACpB;;;EAIN,MAAM,yBAAyB;AAC7B,UAAO,iBAAiB,WAAW,cAAc;;AAGnD,SAAO,iBAAiB,QAAQ,iBAAiB;AAEjD,eAAa;AACX,UAAO,oBAAoB,WAAW,cAAc;AACpD,UAAO,oBAAoB,QAAQ,iBAAiB;;IAErD,CAAC,SAAS,CAAC;AAEd,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACD"}
@@ -0,0 +1,27 @@
1
+ "use client";
2
+
3
+ import React from "react";
4
+
5
+ //#region src/components/provider/use-chatbot-window-states.tsx
6
+ function useChatbotWindowStates() {
7
+ const [hasOpened, setHasOpened] = React.useState(false);
8
+ const [open, setOpen] = React.useState(false);
9
+ const [isExpanded, setIsExpanded] = React.useState(false);
10
+ const [isFullScreen, setIsFullScreen] = React.useState(false);
11
+ React.useEffect(() => {
12
+ if (open) setHasOpened(true);
13
+ }, [open]);
14
+ return {
15
+ hasOpened,
16
+ open,
17
+ isExpanded,
18
+ isFullScreen,
19
+ setOpen,
20
+ setIsExpanded,
21
+ setIsFullScreen
22
+ };
23
+ }
24
+
25
+ //#endregion
26
+ export { useChatbotWindowStates };
27
+ //# sourceMappingURL=use-chatbot-window-states.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-chatbot-window-states.mjs","names":[],"sources":["../../../src/components/provider/use-chatbot-window-states.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\nexport function useChatbotWindowStates() {\n const [hasOpened, setHasOpened] = React.useState(false);\n const [open, setOpen] = React.useState(false);\n const [isExpanded, setIsExpanded] = React.useState(false);\n const [isFullScreen, setIsFullScreen] = React.useState(false);\n\n React.useEffect(() => {\n if (open) {\n setHasOpened(true);\n }\n }, [open]);\n\n return {\n hasOpened,\n open,\n isExpanded,\n isFullScreen,\n setOpen,\n setIsExpanded,\n setIsFullScreen,\n };\n}\n"],"mappings":";;;;;AAIA,SAAgB,yBAAyB;CACvC,MAAM,CAAC,WAAW,gBAAgB,MAAM,SAAS,MAAM;CACvD,MAAM,CAAC,MAAM,WAAW,MAAM,SAAS,MAAM;CAC7C,MAAM,CAAC,YAAY,iBAAiB,MAAM,SAAS,MAAM;CACzD,MAAM,CAAC,cAAc,mBAAmB,MAAM,SAAS,MAAM;AAE7D,OAAM,gBAAgB;AACpB,MAAI,KACF,cAAa,KAAK;IAEnB,CAAC,KAAK,CAAC;AAEV,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACD"}
@@ -0,0 +1,18 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
3
+ import * as SheetPrimitive from "@radix-ui/react-dialog";
4
+
5
+ //#region src/components/sheet.d.ts
6
+ declare function Sheet({
7
+ ...props
8
+ }: React$1.ComponentProps<typeof SheetPrimitive.Root>): react_jsx_runtime1.JSX.Element;
9
+ declare const SheetTrigger: React$1.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
10
+ declare const SheetClose: React$1.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
11
+ declare const SheetContent: React$1.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
12
+ declare const SheetHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
13
+ declare const SheetFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
14
+ declare const SheetTitle: React$1.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
15
+ declare const SheetDescription: React$1.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
16
+ //#endregion
17
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
18
+ //# sourceMappingURL=sheet.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet.d.mts","names":[],"sources":["../../src/components/sheet.tsx"],"sourcesContent":[],"mappings":";;;;;iBAMS,KAAA;;GAAoB,OAAA,CAAM,sBAAsB,cAAA,CAAe,QAAK,kBAAA,CAAA,GAAA,CAAA;cAavE,cAAY,OAAA,CAAA,0BAAA,KAAA,cAAA,CAAA,qBAAA,OAAA,CAAA,cAAA,6BAAA,OAAA,CAAA,cAAA;cAaZ,YAAU,OAAA,CAAA,0BAAA,KAAA,cAAA,CAAA,mBAAA,OAAA,CAAA,cAAA,6BAAA,OAAA,CAAA,cAAA;AA7Be,cAgDzB,YA7CQ,EA6CI,OAAA,CAAA,yBA7CJ,CA6CI,IA7CJ,CA6CI,cAAA,CAAA,kBA7CJ,GA6CI,OAAA,CAAA,aA7CJ,CA6CI,cA7CJ,CAAA,EAAA,KAAA,CAAA,GA6CI,OAAA,CAAA,aA7CJ,CA6CI,cA7CJ,CAAA,CAAA;cAyFR,WAzFkE,EAyFvD,OAAA,CAAA,yBAzFuD,CAyFvD,OAAA,CAAA,cAzFuD,CAyFvD,cAzFuD,CAAA,GAyFvD,OAAA,CAAA,aAzFuD,CAyFvD,cAzFuD,CAAA,CAAA;cAsGlE,WAtG6B,EAsGlB,OAAA,CAAA,yBAtGkB,CAsGlB,OAAA,CAAA,cAtGkB,CAsGlB,cAtGkB,CAAA,GAsGlB,OAAA,CAAA,aAtGkB,CAsGlB,cAtGkB,CAAA,CAAA;cAmH7B,UAnHuE,EAmH7D,OAAA,CAAA,yBAnH6D,CAmH7D,IAnH6D,CAmH7D,cAAA,CAAA,gBAnH6D,GAmH7D,OAAA,CAAA,aAnH6D,CAmH7D,kBAnH6D,CAAA,EAAA,KAAA,CAAA,GAmH7D,OAAA,CAAA,aAnH6D,CAmH7D,kBAnH6D,CAAA,CAAA;cAgIvE,gBAhIuE,EAgIvD,OAAA,CAAA,yBAhIuD,CAgIvD,IAhIuD,CAgIvD,cAAA,CAAA,sBAhIuD,GAgIvD,OAAA,CAAA,aAhIuD,CAgIvD,oBAhIuD,CAAA,EAAA,KAAA,CAAA,GAgIvD,OAAA,CAAA,aAhIuD,CAgIvD,oBAhIuD,CAAA,CAAA"}
@@ -0,0 +1,117 @@
1
+ "use client";
2
+
3
+ import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.mjs";
4
+ import { useChatbot } from "./provider/chatbot-provider.mjs";
5
+ import { _objectDestructuringEmpty } from "../_virtual/_@oxc-project_runtime@0.103.0/helpers/objectDestructuringEmpty.mjs";
6
+ import { _extends } from "../_virtual/_@oxc-project_runtime@0.103.0/helpers/extends.mjs";
7
+ import { _objectWithoutProperties } from "../_virtual/_@oxc-project_runtime@0.103.0/helpers/objectWithoutProperties.mjs";
8
+ import * as React$1 from "react";
9
+ import { jsx } from "react/jsx-runtime";
10
+ import * as SheetPrimitive from "@radix-ui/react-dialog";
11
+
12
+ //#region src/components/sheet.tsx
13
+ const _excluded = ["className"], _excluded2 = ["className"], _excluded3 = [
14
+ "className",
15
+ "children",
16
+ "style"
17
+ ], _excluded4 = ["className"], _excluded5 = ["className"], _excluded6 = ["className"], _excluded7 = ["className"];
18
+ function Sheet(_ref) {
19
+ let props = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
20
+ const { open, setOpen } = useChatbot();
21
+ return /* @__PURE__ */ jsx(SheetPrimitive.Root, _objectSpread2({
22
+ "data-slot": "sheet",
23
+ modal: false,
24
+ open,
25
+ onOpenChange: setOpen
26
+ }, props));
27
+ }
28
+ const SheetTrigger = React$1.forwardRef((_ref2, ref) => {
29
+ let { className } = _ref2, props = _objectWithoutProperties(_ref2, _excluded);
30
+ return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, _objectSpread2({
31
+ ref,
32
+ "data-slot": "sheet-trigger",
33
+ className: `chatbot-trigger ${className || ""}`
34
+ }, props));
35
+ });
36
+ SheetTrigger.displayName = SheetPrimitive.Trigger.displayName;
37
+ const SheetClose = React$1.forwardRef((_ref3, ref) => {
38
+ let { className } = _ref3, props = _objectWithoutProperties(_ref3, _excluded2);
39
+ return /* @__PURE__ */ jsx(SheetPrimitive.Close, _objectSpread2({
40
+ ref,
41
+ "data-slot": "sheet-close",
42
+ className: `chatbot-sheet-close ${className || ""}`
43
+ }, props));
44
+ });
45
+ SheetClose.displayName = SheetPrimitive.Close.displayName;
46
+ function SheetPortal(_ref4) {
47
+ let props = _extends({}, (_objectDestructuringEmpty(_ref4), _ref4));
48
+ return /* @__PURE__ */ jsx(SheetPrimitive.Portal, _objectSpread2({ "data-slot": "sheet-portal" }, props));
49
+ }
50
+ const SheetContent = React$1.forwardRef((_ref5, ref) => {
51
+ let { className, children, style } = _ref5, props = _objectWithoutProperties(_ref5, _excluded3);
52
+ const { isExpanded, isFullScreen, open, hasOpened } = useChatbot();
53
+ const width = isFullScreen ? "100%" : isExpanded ? "848px" : "400px";
54
+ const translateX = open ? "0" : "100%";
55
+ const contentStyle = _objectSpread2({
56
+ "--sheet-width": width,
57
+ transform: `translateX(${translateX})`
58
+ }, style);
59
+ const classNames = [
60
+ "chatbot-sheet-content",
61
+ isExpanded && !isFullScreen ? "chatbot-sheet-expanded" : "",
62
+ isFullScreen ? "chatbot-sheet-fullscreen" : "",
63
+ className || ""
64
+ ].filter(Boolean).join(" ");
65
+ return /* @__PURE__ */ jsx(SheetPortal, {
66
+ forceMount: hasOpened || void 0,
67
+ children: /* @__PURE__ */ jsx(SheetPrimitive.Content, _objectSpread2(_objectSpread2({
68
+ ref,
69
+ "data-slot": "sheet-content",
70
+ forceMount: hasOpened || void 0,
71
+ onInteractOutside: (e) => e.preventDefault(),
72
+ className: classNames,
73
+ style: contentStyle
74
+ }, props), {}, { children }))
75
+ });
76
+ });
77
+ SheetContent.displayName = SheetPrimitive.Content.displayName;
78
+ const SheetHeader = React$1.forwardRef((_ref6, ref) => {
79
+ let { className } = _ref6, props = _objectWithoutProperties(_ref6, _excluded4);
80
+ return /* @__PURE__ */ jsx("div", _objectSpread2({
81
+ ref,
82
+ "data-slot": "sheet-header",
83
+ className: `chatbot-sheet-header ${className || ""}`
84
+ }, props));
85
+ });
86
+ SheetHeader.displayName = "SheetHeader";
87
+ const SheetFooter = React$1.forwardRef((_ref7, ref) => {
88
+ let { className } = _ref7, props = _objectWithoutProperties(_ref7, _excluded5);
89
+ return /* @__PURE__ */ jsx("div", _objectSpread2({
90
+ ref,
91
+ "data-slot": "sheet-footer",
92
+ className: `chatbot-sheet-footer ${className || ""}`
93
+ }, props));
94
+ });
95
+ SheetFooter.displayName = "SheetFooter";
96
+ const SheetTitle = React$1.forwardRef((_ref8, ref) => {
97
+ let { className } = _ref8, props = _objectWithoutProperties(_ref8, _excluded6);
98
+ return /* @__PURE__ */ jsx(SheetPrimitive.Title, _objectSpread2({
99
+ ref,
100
+ "data-slot": "sheet-title",
101
+ className: `chatbot-sheet-title ${className || ""}`
102
+ }, props));
103
+ });
104
+ SheetTitle.displayName = SheetPrimitive.Title.displayName;
105
+ const SheetDescription = React$1.forwardRef((_ref9, ref) => {
106
+ let { className } = _ref9, props = _objectWithoutProperties(_ref9, _excluded7);
107
+ return /* @__PURE__ */ jsx(SheetPrimitive.Description, _objectSpread2({
108
+ ref,
109
+ "data-slot": "sheet-description",
110
+ className: `chatbot-sheet-description ${className || ""}`
111
+ }, props));
112
+ });
113
+ SheetDescription.displayName = SheetPrimitive.Description.displayName;
114
+
115
+ //#endregion
116
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
117
+ //# sourceMappingURL=sheet.mjs.map
@@ -0,0 +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"}
@@ -0,0 +1,38 @@
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+
3
+ //#region src/components/tooltip.d.ts
4
+ type Side = "top" | "right" | "bottom" | "left";
5
+ type Align = "start" | "center" | "end";
6
+ type TooltipProps = {
7
+ content: React.ReactNode;
8
+ side?: Side;
9
+ align?: Align;
10
+ trigger: React.ReactNode;
11
+ disabled?: boolean;
12
+ delayDuration?: number;
13
+ skipDelayDuration?: number;
14
+ className?: string;
15
+ open?: boolean;
16
+ alignOffset?: number;
17
+ sideOffset?: number;
18
+ arrowClassName?: string;
19
+ keepTooltipOpen?: boolean;
20
+ };
21
+ declare function Tooltip({
22
+ content,
23
+ trigger,
24
+ side,
25
+ align,
26
+ disabled,
27
+ delayDuration,
28
+ skipDelayDuration,
29
+ className,
30
+ open,
31
+ alignOffset,
32
+ sideOffset,
33
+ arrowClassName,
34
+ keepTooltipOpen
35
+ }: TooltipProps): react_jsx_runtime0.JSX.Element;
36
+ //#endregion
37
+ export { Tooltip };
38
+ //# sourceMappingURL=tooltip.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.mts","names":[],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":[],"mappings":";;;KAWK,IAAA;KACA,KAAA;KAEA,YAAA;EAHA,OAAI,EAIE,KAAA,CAAM,SAJR;EACJ,IAAA,CAAA,EAII,IAJC;EAEL,KAAA,CAAA,EAGK,KAHL;EACM,OAAM,EAGN,KAAA,CAAM,SAHA;EACR,QAAA,CAAA,EAAA,OAAA;EACC,aAAA,CAAA,EAAA,MAAA;EACC,iBAAM,CAAA,EAAA,MAAA;EAAS,SAAA,CAAA,EAAA,MAAA;EAYV,IAAA,CAAA,EAAA,OAAO;EACrB,WAAA,CAAA,EAAA,MAAA;EACA,UAAA,CAAA,EAAA,MAAA;EACA,cAAA,CAAA,EAAA,MAAA;EACA,eAAA,CAAA,EAAA,OAAA;CACA;AACA,iBANc,OAAA,CAMd;EAAA,OAAA;EAAA,OAAA;EAAA,IAAA;EAAA,KAAA;EAAA,QAAA;EAAA,aAAA;EAAA,iBAAA;EAAA,SAAA;EAAA,IAAA;EAAA,WAAA;EAAA,UAAA;EAAA,cAAA;EAAA;AAAA,CAAA,EAQC,YARD,CAAA,EAQa,kBAAA,CAAA,GAAA,CAAA,OARb"}
@@ -0,0 +1,36 @@
1
+ "use client";
2
+
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { Arrow, Content, Portal, Provider, Root, Trigger } from "@radix-ui/react-tooltip";
5
+
6
+ //#region src/components/tooltip.tsx
7
+ function Tooltip({ content, trigger, side, align, disabled, delayDuration, skipDelayDuration, className, open, alignOffset, sideOffset, arrowClassName, keepTooltipOpen }) {
8
+ return /* @__PURE__ */ jsx(Provider, {
9
+ delayDuration: delayDuration !== null && delayDuration !== void 0 ? delayDuration : 200,
10
+ skipDelayDuration: skipDelayDuration !== null && skipDelayDuration !== void 0 ? skipDelayDuration : 200,
11
+ children: /* @__PURE__ */ jsxs(Root, {
12
+ open: disabled ? false : open,
13
+ children: [/* @__PURE__ */ jsx(Trigger, {
14
+ onClick: keepTooltipOpen ? (event) => {
15
+ event.preventDefault();
16
+ } : void 0,
17
+ asChild: true,
18
+ children: trigger
19
+ }), /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsxs(Content, {
20
+ className: `tooltip-content ${className || ""}`,
21
+ side,
22
+ align,
23
+ alignOffset,
24
+ sideOffset,
25
+ onPointerDownOutside: keepTooltipOpen ? (event) => {
26
+ event.preventDefault();
27
+ } : void 0,
28
+ children: [/* @__PURE__ */ jsx(Arrow, { className: arrowClassName }), content]
29
+ }) })]
30
+ })
31
+ });
32
+ }
33
+
34
+ //#endregion
35
+ export { Tooltip };
36
+ //# sourceMappingURL=tooltip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.mjs","names":[],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Arrow,\n Content,\n Portal,\n Provider,\n Root,\n Trigger,\n} from \"@radix-ui/react-tooltip\";\n\ntype Side = \"top\" | \"right\" | \"bottom\" | \"left\";\ntype Align = \"start\" | \"center\" | \"end\";\n\ntype TooltipProps = {\n content: React.ReactNode;\n side?: Side;\n align?: Align;\n trigger: React.ReactNode;\n disabled?: boolean;\n delayDuration?: number;\n skipDelayDuration?: number;\n className?: string;\n open?: boolean;\n alignOffset?: number;\n sideOffset?: number;\n arrowClassName?: string;\n keepTooltipOpen?: boolean;\n};\n\nexport function Tooltip({\n content,\n trigger,\n side,\n align,\n disabled,\n delayDuration,\n skipDelayDuration,\n className,\n open,\n alignOffset,\n sideOffset,\n arrowClassName,\n keepTooltipOpen,\n}: TooltipProps) {\n return (\n <Provider\n delayDuration={delayDuration ?? 200}\n skipDelayDuration={skipDelayDuration ?? 200}\n >\n <Root open={disabled ? false : open}>\n <Trigger\n onClick={\n keepTooltipOpen\n ? (event) => {\n event.preventDefault();\n }\n : undefined\n }\n asChild\n >\n {trigger}\n </Trigger>\n\n <Portal>\n <Content\n className={`tooltip-content ${className || \"\"}`}\n side={side}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n onPointerDownOutside={\n keepTooltipOpen\n ? (event) => {\n event.preventDefault();\n }\n : undefined\n }\n >\n <Arrow className={arrowClassName} />\n {content}\n </Content>\n </Portal>\n </Root>\n </Provider>\n );\n}\n"],"mappings":";;;;;;AA8BA,SAAgB,QAAQ,EACtB,SACA,SACA,MACA,OACA,UACA,eACA,mBACA,WACA,MACA,aACA,YACA,gBACA,mBACe;AACf,QACE,oBAAC;EACC,eAAe,qEAAiB;EAChC,mBAAmB,iFAAqB;YAExC,qBAAC;GAAK,MAAM,WAAW,QAAQ;cAC7B,oBAAC;IACC,SACE,mBACK,UAAU;AACT,WAAM,gBAAgB;QAExB;IAEN;cAEC;KACO,EAEV,oBAAC,oBACC,qBAAC;IACC,WAAW,mBAAmB,aAAa;IACrC;IACC;IACM;IACD;IACZ,sBACE,mBACK,UAAU;AACT,WAAM,gBAAgB;QAExB;eAGN,oBAAC,SAAM,WAAW,iBAAkB,EACnC;KACO,GACH;IACJ;GACE"}
@@ -0,0 +1,6 @@
1
+ import { ChatbotProvider, useChatbot } from "./components/provider/chatbot-provider.mjs";
2
+ import { ChatbotFrame, ChatbotFrameProps, SessionData, UseSessionProps, useSession } from "./components/chatbot-frame.mjs";
3
+ import { ChatbotSheet } from "./components/chatbot-sheet.mjs";
4
+ import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from "./components/sheet.mjs";
5
+ import { Tooltip } from "./components/tooltip.mjs";
6
+ export { ChatbotFrame, ChatbotFrameProps, ChatbotProvider, ChatbotSheet, SessionData, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Tooltip, UseSessionProps, useChatbot, useSession };