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

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.
@@ -11,6 +11,10 @@ type ChatbotContextType = {
11
11
  isExpanded: boolean;
12
12
  /** チャットボットを展開する */
13
13
  setIsExpanded: (expanded: boolean) => void;
14
+ /** チャットボットをフルスクリーンにしているか */
15
+ isFullScreen: boolean;
16
+ /** チャットボットをフルスクリーンにする */
17
+ setIsFullScreen: (fullScreen: boolean) => void;
14
18
  /** チャットボットを初期化 */
15
19
  init: (props: InitProps) => void;
16
20
  /** MCPを設定 */
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-provider.d.ts","sourceRoot":"","sources":["../../../src/components/provider/chatbot-provider.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,mBAAmB;IACnB,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,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,2CAkCjE"}
1
+ {"version":3,"file":"chatbot-provider.d.ts","sourceRoot":"","sources":["../../../src/components/provider/chatbot-provider.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,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,yBAAyB;IACzB,eAAe,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,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,mBAAmB;IACnB,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,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,2CA4CjE"}
@@ -9,6 +9,10 @@ export type IframeMessage = {
9
9
  type: "EXPAND_CHATBOT";
10
10
  } | {
11
11
  type: "SHRINK_CHATBOT";
12
+ } | {
13
+ type: "FULLSCREEN_CHATBOT";
14
+ } | {
15
+ type: "EXIT_FULLSCREEN_CHATBOT";
12
16
  } | {
13
17
  type: "RELOAD_CHATBOT";
14
18
  };
@@ -37,9 +41,10 @@ export type ParentMessage = {
37
41
  appName?: string;
38
42
  sessionToken?: string;
39
43
  };
40
- export declare function useChatbotFrameHandler({ setOpen, setIsExpanded, }: {
44
+ export declare function useChatbotFrameHandler({ setOpen, setIsExpanded, setIsFullScreen, }: {
41
45
  setOpen: (open: boolean) => void;
42
46
  setIsExpanded: (expanded: boolean) => void;
47
+ setIsFullScreen: (fullScreen: boolean) => void;
43
48
  }): {
44
49
  init: (props: InitProps) => void;
45
50
  setMcps: (mcps: MCP[]) => void;
@@ -1 +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,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;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,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,cAAc,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,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;oCAOD,MAAM;;;;EA8DxB"}
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,GAC1B;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,yBAAyB,CAAA;CAAE,GACnC;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;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,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,cAAc,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEN,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,aAAa,EACb,eAAe,GAChB,EAAE;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,eAAe,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD;kBAqBW,SAAS;oBAUV,GAAG,EAAE;0BAOF,MAAM;oCAOD,MAAM;;;;EAoExB"}
@@ -3,7 +3,9 @@ export declare function useChatbotWindowStates(): {
3
3
  hasOpened: boolean;
4
4
  open: boolean;
5
5
  isExpanded: boolean;
6
+ isFullScreen: boolean;
6
7
  setOpen: React.Dispatch<React.SetStateAction<boolean>>;
7
8
  setIsExpanded: React.Dispatch<React.SetStateAction<boolean>>;
9
+ setIsFullScreen: React.Dispatch<React.SetStateAction<boolean>>;
8
10
  };
9
11
  //# sourceMappingURL=use-chatbot-window-states.d.ts.map
@@ -1 +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"}
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;;;;;;;;EAqBrC"}
@@ -1 +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"}
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,6JAyChB,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"}
package/dist/index.js CHANGED
@@ -38,7 +38,8 @@ var _react = require('react'); var React5 = _interopRequireWildcard(_react); var
38
38
 
39
39
  function useChatbotFrameHandler({
40
40
  setOpen,
41
- setIsExpanded
41
+ setIsExpanded,
42
+ setIsFullScreen
42
43
  }) {
43
44
  const [iframeEl, setIframeEl] = React5.default.useState(
44
45
  null
@@ -108,6 +109,12 @@ function useChatbotFrameHandler({
108
109
  case "SHRINK_CHATBOT":
109
110
  setIsExpanded(false);
110
111
  break;
112
+ case "FULLSCREEN_CHATBOT":
113
+ setIsFullScreen(true);
114
+ break;
115
+ case "EXIT_FULLSCREEN_CHATBOT":
116
+ setIsFullScreen(false);
117
+ break;
111
118
  case "RELOAD_CHATBOT":
112
119
  iframe.src = iframe.src;
113
120
  break;
@@ -139,12 +146,21 @@ function useChatbotWindowStates() {
139
146
  const [hasOpened, setHasOpened] = React5.default.useState(false);
140
147
  const [open, setOpen] = React5.default.useState(false);
141
148
  const [isExpanded, setIsExpanded] = React5.default.useState(false);
149
+ const [isFullScreen, setIsFullScreen] = React5.default.useState(false);
142
150
  React5.default.useEffect(() => {
143
151
  if (open) {
144
152
  setHasOpened(true);
145
153
  }
146
154
  }, [open]);
147
- return { hasOpened, open, isExpanded, setOpen, setIsExpanded };
155
+ return {
156
+ hasOpened,
157
+ open,
158
+ isExpanded,
159
+ isFullScreen,
160
+ setOpen,
161
+ setIsExpanded,
162
+ setIsFullScreen
163
+ };
148
164
  }
149
165
 
150
166
  // src/components/provider/chatbot-provider.tsx
@@ -160,7 +176,15 @@ function useChatbot() {
160
176
  return context;
161
177
  }
162
178
  function ChatbotProvider({ children }) {
163
- const { hasOpened, open, isExpanded, setOpen, setIsExpanded } = useChatbotWindowStates();
179
+ const {
180
+ hasOpened,
181
+ open,
182
+ isExpanded,
183
+ isFullScreen,
184
+ setOpen,
185
+ setIsExpanded,
186
+ setIsFullScreen
187
+ } = useChatbotWindowStates();
164
188
  const {
165
189
  setMcps,
166
190
  setAppName,
@@ -171,7 +195,8 @@ function ChatbotProvider({ children }) {
171
195
  setIframeEl
172
196
  } = useChatbotFrameHandler({
173
197
  setOpen,
174
- setIsExpanded
198
+ setIsExpanded,
199
+ setIsFullScreen
175
200
  });
176
201
  const value = {
177
202
  hasOpened,
@@ -179,6 +204,8 @@ function ChatbotProvider({ children }) {
179
204
  setOpen,
180
205
  isExpanded,
181
206
  setIsExpanded,
207
+ isFullScreen,
208
+ setIsFullScreen,
182
209
  setSessionToken,
183
210
  init,
184
211
  setMcps,
@@ -404,13 +431,19 @@ function SheetPortal(_a) {
404
431
  }
405
432
  var SheetContent = React6.forwardRef((_a, ref) => {
406
433
  var _b = _a, { className, children, style } = _b, props = __objRest(_b, ["className", "children", "style"]);
407
- const { isExpanded, open, hasOpened } = useChatbot();
408
- const width = isExpanded ? "848px" : "400px";
434
+ const { isExpanded, isFullScreen, open, hasOpened } = useChatbot();
435
+ const width = isFullScreen ? "100%" : isExpanded ? "848px" : "400px";
409
436
  const translateX = open ? "0" : "100%";
410
437
  const contentStyle = __spreadValues({
411
438
  "--sheet-width": width,
412
439
  transform: `translateX(${translateX})`
413
440
  }, style);
441
+ const classNames = [
442
+ "chatbot-sheet-content",
443
+ isExpanded && !isFullScreen ? "chatbot-sheet-expanded" : "",
444
+ isFullScreen ? "chatbot-sheet-fullscreen" : "",
445
+ className || ""
446
+ ].filter(Boolean).join(" ");
414
447
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SheetPortal, { forceMount: hasOpened || void 0, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
415
448
  SheetPrimitive.Content,
416
449
  __spreadProps(__spreadValues({
@@ -418,7 +451,7 @@ var SheetContent = React6.forwardRef((_a, ref) => {
418
451
  "data-slot": "sheet-content",
419
452
  forceMount: hasOpened || void 0,
420
453
  onInteractOutside: (e) => e.preventDefault(),
421
- className: `chatbot-sheet-content ${isExpanded ? "chatbot-sheet-expanded" : ""} ${className || ""}`,
454
+ className: classNames,
422
455
  style: contentStyle
423
456
  }, props), {
424
457
  children
package/dist/index.mjs CHANGED
@@ -38,7 +38,8 @@ import React3 from "react";
38
38
  import React from "react";
39
39
  function useChatbotFrameHandler({
40
40
  setOpen,
41
- setIsExpanded
41
+ setIsExpanded,
42
+ setIsFullScreen
42
43
  }) {
43
44
  const [iframeEl, setIframeEl] = React.useState(
44
45
  null
@@ -108,6 +109,12 @@ function useChatbotFrameHandler({
108
109
  case "SHRINK_CHATBOT":
109
110
  setIsExpanded(false);
110
111
  break;
112
+ case "FULLSCREEN_CHATBOT":
113
+ setIsFullScreen(true);
114
+ break;
115
+ case "EXIT_FULLSCREEN_CHATBOT":
116
+ setIsFullScreen(false);
117
+ break;
111
118
  case "RELOAD_CHATBOT":
112
119
  iframe.src = iframe.src;
113
120
  break;
@@ -139,12 +146,21 @@ function useChatbotWindowStates() {
139
146
  const [hasOpened, setHasOpened] = React2.useState(false);
140
147
  const [open, setOpen] = React2.useState(false);
141
148
  const [isExpanded, setIsExpanded] = React2.useState(false);
149
+ const [isFullScreen, setIsFullScreen] = React2.useState(false);
142
150
  React2.useEffect(() => {
143
151
  if (open) {
144
152
  setHasOpened(true);
145
153
  }
146
154
  }, [open]);
147
- return { hasOpened, open, isExpanded, setOpen, setIsExpanded };
155
+ return {
156
+ hasOpened,
157
+ open,
158
+ isExpanded,
159
+ isFullScreen,
160
+ setOpen,
161
+ setIsExpanded,
162
+ setIsFullScreen
163
+ };
148
164
  }
149
165
 
150
166
  // src/components/provider/chatbot-provider.tsx
@@ -160,7 +176,15 @@ function useChatbot() {
160
176
  return context;
161
177
  }
162
178
  function ChatbotProvider({ children }) {
163
- const { hasOpened, open, isExpanded, setOpen, setIsExpanded } = useChatbotWindowStates();
179
+ const {
180
+ hasOpened,
181
+ open,
182
+ isExpanded,
183
+ isFullScreen,
184
+ setOpen,
185
+ setIsExpanded,
186
+ setIsFullScreen
187
+ } = useChatbotWindowStates();
164
188
  const {
165
189
  setMcps,
166
190
  setAppName,
@@ -171,7 +195,8 @@ function ChatbotProvider({ children }) {
171
195
  setIframeEl
172
196
  } = useChatbotFrameHandler({
173
197
  setOpen,
174
- setIsExpanded
198
+ setIsExpanded,
199
+ setIsFullScreen
175
200
  });
176
201
  const value = {
177
202
  hasOpened,
@@ -179,6 +204,8 @@ function ChatbotProvider({ children }) {
179
204
  setOpen,
180
205
  isExpanded,
181
206
  setIsExpanded,
207
+ isFullScreen,
208
+ setIsFullScreen,
182
209
  setSessionToken,
183
210
  init,
184
211
  setMcps,
@@ -404,13 +431,19 @@ function SheetPortal(_a) {
404
431
  }
405
432
  var SheetContent = React6.forwardRef((_a, ref) => {
406
433
  var _b = _a, { className, children, style } = _b, props = __objRest(_b, ["className", "children", "style"]);
407
- const { isExpanded, open, hasOpened } = useChatbot();
408
- const width = isExpanded ? "848px" : "400px";
434
+ const { isExpanded, isFullScreen, open, hasOpened } = useChatbot();
435
+ const width = isFullScreen ? "100%" : isExpanded ? "848px" : "400px";
409
436
  const translateX = open ? "0" : "100%";
410
437
  const contentStyle = __spreadValues({
411
438
  "--sheet-width": width,
412
439
  transform: `translateX(${translateX})`
413
440
  }, style);
441
+ const classNames = [
442
+ "chatbot-sheet-content",
443
+ isExpanded && !isFullScreen ? "chatbot-sheet-expanded" : "",
444
+ isFullScreen ? "chatbot-sheet-fullscreen" : "",
445
+ className || ""
446
+ ].filter(Boolean).join(" ");
414
447
  return /* @__PURE__ */ jsx4(SheetPortal, { forceMount: hasOpened || void 0, children: /* @__PURE__ */ jsx4(
415
448
  SheetPrimitive.Content,
416
449
  __spreadProps(__spreadValues({
@@ -418,7 +451,7 @@ var SheetContent = React6.forwardRef((_a, ref) => {
418
451
  "data-slot": "sheet-content",
419
452
  forceMount: hasOpened || void 0,
420
453
  onInteractOutside: (e) => e.preventDefault(),
421
- className: `chatbot-sheet-content ${isExpanded ? "chatbot-sheet-expanded" : ""} ${className || ""}`,
454
+ className: classNames,
422
455
  style: contentStyle
423
456
  }, props), {
424
457
  children
@@ -29,7 +29,7 @@
29
29
  /* Sheet Content */
30
30
  .chatbot-sheet-content {
31
31
  position: fixed;
32
- top: 0;
32
+ top: 48px;
33
33
  right: 0;
34
34
  bottom: 0;
35
35
  z-index: 50;
@@ -39,7 +39,7 @@
39
39
  0 4px 6px -2px rgba(0, 0, 0, 0.05);
40
40
  border-left: 1px solid #e5e7eb;
41
41
  width: var(--sheet-width, 400px);
42
- height: 100vh;
42
+ height: calc(100vh - 48px);
43
43
  transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
44
44
  }
45
45
 
@@ -47,6 +47,14 @@
47
47
  --sheet-width: 848px;
48
48
  }
49
49
 
50
+ .chatbot-sheet-content.chatbot-sheet-fullscreen {
51
+ top: 0;
52
+ left: 0;
53
+ width: 100%;
54
+ height: 100vh;
55
+ border-left: none;
56
+ }
57
+
50
58
  /* Sheet Header */
51
59
  .chatbot-sheet-header {
52
60
  display: flex;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super_studio/ecforce-ai-agent-react",
3
- "version": "0.6.0-canary.4",
3
+ "version": "0.6.0-canary.5",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
@@ -17,6 +17,10 @@ type ChatbotContextType = {
17
17
  isExpanded: boolean;
18
18
  /** チャットボットを展開する */
19
19
  setIsExpanded: (expanded: boolean) => void;
20
+ /** チャットボットをフルスクリーンにしているか */
21
+ isFullScreen: boolean;
22
+ /** チャットボットをフルスクリーンにする */
23
+ setIsFullScreen: (fullScreen: boolean) => void;
20
24
  /** チャットボットを初期化 */
21
25
  init: (props: InitProps) => void;
22
26
  /** MCPを設定 */
@@ -53,8 +57,15 @@ type ChatbotProviderProps = {
53
57
  };
54
58
 
55
59
  export function ChatbotProvider({ children }: ChatbotProviderProps) {
56
- const { hasOpened, open, isExpanded, setOpen, setIsExpanded } =
57
- useChatbotWindowStates();
60
+ const {
61
+ hasOpened,
62
+ open,
63
+ isExpanded,
64
+ isFullScreen,
65
+ setOpen,
66
+ setIsExpanded,
67
+ setIsFullScreen,
68
+ } = useChatbotWindowStates();
58
69
  const {
59
70
  setMcps,
60
71
  setAppName,
@@ -66,6 +77,7 @@ export function ChatbotProvider({ children }: ChatbotProviderProps) {
66
77
  } = useChatbotFrameHandler({
67
78
  setOpen,
68
79
  setIsExpanded,
80
+ setIsFullScreen,
69
81
  });
70
82
 
71
83
  const value = {
@@ -74,6 +86,8 @@ export function ChatbotProvider({ children }: ChatbotProviderProps) {
74
86
  setOpen,
75
87
  isExpanded,
76
88
  setIsExpanded,
89
+ isFullScreen,
90
+ setIsFullScreen,
77
91
  setSessionToken,
78
92
  init,
79
93
  setMcps,
@@ -6,6 +6,8 @@ export type IframeMessage =
6
6
  | { type: "CLOSE_CHATBOT" }
7
7
  | { type: "EXPAND_CHATBOT" }
8
8
  | { type: "SHRINK_CHATBOT" }
9
+ | { type: "FULLSCREEN_CHATBOT" }
10
+ | { type: "EXIT_FULLSCREEN_CHATBOT" }
9
11
  | { type: "RELOAD_CHATBOT" };
10
12
 
11
13
  export type MCP = {
@@ -43,9 +45,11 @@ export type ParentMessage =
43
45
  export function useChatbotFrameHandler({
44
46
  setOpen,
45
47
  setIsExpanded,
48
+ setIsFullScreen,
46
49
  }: {
47
50
  setOpen: (open: boolean) => void;
48
51
  setIsExpanded: (expanded: boolean) => void;
52
+ setIsFullScreen: (fullScreen: boolean) => void;
49
53
  }) {
50
54
  const [iframeEl, setIframeEl] = React.useState<HTMLIFrameElement | null>(
51
55
  null,
@@ -125,6 +129,12 @@ export function useChatbotFrameHandler({
125
129
  case "SHRINK_CHATBOT":
126
130
  setIsExpanded(false);
127
131
  break;
132
+ case "FULLSCREEN_CHATBOT":
133
+ setIsFullScreen(true);
134
+ break;
135
+ case "EXIT_FULLSCREEN_CHATBOT":
136
+ setIsFullScreen(false);
137
+ break;
128
138
  case "RELOAD_CHATBOT":
129
139
  // reload iframe
130
140
  iframe.src = iframe.src;
@@ -4,6 +4,7 @@ export function useChatbotWindowStates() {
4
4
  const [hasOpened, setHasOpened] = React.useState(false);
5
5
  const [open, setOpen] = React.useState(false);
6
6
  const [isExpanded, setIsExpanded] = React.useState(false);
7
+ const [isFullScreen, setIsFullScreen] = React.useState(false);
7
8
 
8
9
  React.useEffect(() => {
9
10
  if (open) {
@@ -11,5 +12,13 @@ export function useChatbotWindowStates() {
11
12
  }
12
13
  }, [open]);
13
14
 
14
- return { hasOpened, open, isExpanded, setOpen, setIsExpanded };
15
+ return {
16
+ hasOpened,
17
+ open,
18
+ isExpanded,
19
+ isFullScreen,
20
+ setOpen,
21
+ setIsExpanded,
22
+ setIsFullScreen,
23
+ };
15
24
  }
@@ -51,8 +51,8 @@ const SheetContent = React.forwardRef<
51
51
  React.ElementRef<typeof SheetPrimitive.Content>,
52
52
  React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>
53
53
  >(({ className, children, style, ...props }, ref) => {
54
- const { isExpanded, open, hasOpened } = useChatbot();
55
- const width = isExpanded ? "848px" : "400px";
54
+ const { isExpanded, isFullScreen, open, hasOpened } = useChatbot();
55
+ const width = isFullScreen ? "100%" : isExpanded ? "848px" : "400px";
56
56
 
57
57
  // Use transform for better performance instead of right property
58
58
  const translateX = open ? "0" : "100%";
@@ -64,6 +64,15 @@ const SheetContent = React.forwardRef<
64
64
  ...style,
65
65
  } as React.CSSProperties & { "--sheet-width": string };
66
66
 
67
+ const classNames = [
68
+ "chatbot-sheet-content",
69
+ isExpanded && !isFullScreen ? "chatbot-sheet-expanded" : "",
70
+ isFullScreen ? "chatbot-sheet-fullscreen" : "",
71
+ className || "",
72
+ ]
73
+ .filter(Boolean)
74
+ .join(" ");
75
+
67
76
  return (
68
77
  <SheetPortal forceMount={hasOpened || undefined}>
69
78
  <SheetPrimitive.Content
@@ -71,7 +80,7 @@ const SheetContent = React.forwardRef<
71
80
  data-slot="sheet-content"
72
81
  forceMount={hasOpened || undefined}
73
82
  onInteractOutside={(e) => e.preventDefault()}
74
- className={`chatbot-sheet-content ${isExpanded ? "chatbot-sheet-expanded" : ""} ${className || ""}`}
83
+ className={classNames}
75
84
  style={contentStyle}
76
85
  {...props}
77
86
  >
@@ -29,7 +29,7 @@
29
29
  /* Sheet Content */
30
30
  .chatbot-sheet-content {
31
31
  position: fixed;
32
- top: 0;
32
+ top: 48px;
33
33
  right: 0;
34
34
  bottom: 0;
35
35
  z-index: 50;
@@ -39,7 +39,7 @@
39
39
  0 4px 6px -2px rgba(0, 0, 0, 0.05);
40
40
  border-left: 1px solid #e5e7eb;
41
41
  width: var(--sheet-width, 400px);
42
- height: 100vh;
42
+ height: calc(100vh - 48px);
43
43
  transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
44
44
  }
45
45
 
@@ -47,6 +47,14 @@
47
47
  --sheet-width: 848px;
48
48
  }
49
49
 
50
+ .chatbot-sheet-content.chatbot-sheet-fullscreen {
51
+ top: 0;
52
+ left: 0;
53
+ width: 100%;
54
+ height: 100vh;
55
+ border-left: none;
56
+ }
57
+
50
58
  /* Sheet Header */
51
59
  .chatbot-sheet-header {
52
60
  display: flex;