@vite-plugin-opencode-assistant/components 1.1.16 → 1.1.17

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/es/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { App } from 'vue';
2
- declare const version = "1.1.16";
2
+ declare const version = "1.1.17";
3
3
  declare function install(app: App<any>, options?: any): void;
4
4
  export { install, version, };
5
5
  export * from './open-code-widget';
package/es/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { OpenCodeWidget } from "./open-code-widget/index.mjs";
2
- const version = "1.1.16";
2
+ const version = "1.1.17";
3
3
  function install(app, options) {
4
4
  const components = [
5
5
  OpenCodeWidget
@@ -122,9 +122,10 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent(__spreadProps(__spreadValue
122
122
  const reviewPanelVisible = ref(false);
123
123
  const isRestoring = ref(true);
124
124
  const iframeLoaded = ref(false);
125
+ const iframeReady = ref(false);
125
126
  const splitPanelWidth = ref(props.splitPanelWidth);
126
127
  const syncStateToIframe = () => {
127
- if (!iframeLoaded.value) return;
128
+ if (!iframeLoaded.value || !iframeReady.value) return;
128
129
  sendMessageToIframe(WIDGET_MSG.PROMPT_DOCK_VISIBILITY, { visible: promptDockVisible.value });
129
130
  sendMessageToIframe(WIDGET_MSG.MINIMIZE_STATE, { minimized: minimized.value });
130
131
  sendMessageToIframe(WIDGET_MSG.REVIEW_PANEL_TOGGLE, { visible: reviewPanelVisible.value });
@@ -132,7 +133,6 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent(__spreadProps(__spreadValue
132
133
  const handleFrameLoaded = () => {
133
134
  emit("frame-loaded");
134
135
  iframeLoaded.value = true;
135
- syncStateToIframe();
136
136
  };
137
137
  watch(
138
138
  () => props.sessionListCollapsed,
@@ -367,14 +367,23 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent(__spreadProps(__spreadValue
367
367
  windowHeight.value = window.innerHeight;
368
368
  }
369
369
  };
370
+ const handleIframeMessage = (event) => {
371
+ var _a2;
372
+ if (((_a2 = event.data) == null ? void 0 : _a2.type) === WIDGET_MSG.READY) {
373
+ iframeReady.value = true;
374
+ syncStateToIframe();
375
+ }
376
+ };
370
377
  onMounted(() => {
371
378
  if (typeof window !== "undefined") {
372
379
  window.addEventListener("resize", handleWindowResize);
380
+ window.addEventListener("message", handleIframeMessage);
373
381
  }
374
382
  });
375
383
  onUnmounted(() => {
376
384
  if (typeof window !== "undefined") {
377
385
  window.removeEventListener("resize", handleWindowResize);
386
+ window.removeEventListener("message", handleIframeMessage);
378
387
  }
379
388
  });
380
389
  const bubbleQuadrant = computed(() => {
@@ -557,7 +566,7 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent(__spreadProps(__spreadValue
557
566
  return dialogResolve;
558
567
  }, set dialogResolve(v) {
559
568
  dialogResolve = v;
560
- }, showConfirmDialog, handleDialogConfirm, handleDialogCancel, frameRef, triggerRef, sendMessageToIframe, localSessionListCollapsed, localDisplayMode, localSplitPosition, minimized, promptDockVisible, reviewPanelVisible, isRestoring, iframeLoaded, splitPanelWidth, syncStateToIframe, handleFrameLoaded, handleToggleDisplayMode, buttonActive, containerClasses, iframeSource, sessionListTitle, resolvedTheme, handleClose, handleEmptyAction, handleToggle, handleToggleSessionList, handleToggleTheme, sessionItems, handleCreateSession, handleDeleteSession, handleSelectSession, bubbleVisible, hasSelectedElements, selectedElementItems, handleClearSelectedNodes, handleClickSelectedNode, handleRemoveSelectedNode, handleToggleSelectMode, highlightVisible, highlightStyle, tooltipVisible, tooltipStyle, tooltipContent, bubbleOffset, effectiveMode, isSplitMode, isExtensionMode, panelWidth, splitConfig, splitPosition, handleResize, handleSplitToggle, handleTogglePosition, handleToggleMinimize, handleTogglePromptDock, handleToggleReviewPanel, handleRefresh, windowWidth, windowHeight, handleWindowResize, bubbleQuadrant, isBubbleOnRightSide, chatPositionStyle, handleBubbleOffsetChange, handleResizeStart, handleResizeEnd, chatAnimationOrigin, isDragging, get wasOpenBeforeDrag() {
569
+ }, showConfirmDialog, handleDialogConfirm, handleDialogCancel, frameRef, triggerRef, sendMessageToIframe, localSessionListCollapsed, localDisplayMode, localSplitPosition, minimized, promptDockVisible, reviewPanelVisible, isRestoring, iframeLoaded, iframeReady, splitPanelWidth, syncStateToIframe, handleFrameLoaded, handleToggleDisplayMode, buttonActive, containerClasses, iframeSource, sessionListTitle, resolvedTheme, handleClose, handleEmptyAction, handleToggle, handleToggleSessionList, handleToggleTheme, sessionItems, handleCreateSession, handleDeleteSession, handleSelectSession, bubbleVisible, hasSelectedElements, selectedElementItems, handleClearSelectedNodes, handleClickSelectedNode, handleRemoveSelectedNode, handleToggleSelectMode, highlightVisible, highlightStyle, tooltipVisible, tooltipStyle, tooltipContent, bubbleOffset, effectiveMode, isSplitMode, isExtensionMode, panelWidth, splitConfig, splitPosition, handleResize, handleSplitToggle, handleTogglePosition, handleToggleMinimize, handleTogglePromptDock, handleToggleReviewPanel, handleRefresh, windowWidth, windowHeight, handleWindowResize, handleIframeMessage, bubbleQuadrant, isBubbleOnRightSide, chatPositionStyle, handleBubbleOffsetChange, handleResizeStart, handleResizeEnd, chatAnimationOrigin, isDragging, get wasOpenBeforeDrag() {
561
570
  return wasOpenBeforeDrag;
562
571
  }, set wasOpenBeforeDrag(v) {
563
572
  wasOpenBeforeDrag = v;
package/lib/index.cjs CHANGED
@@ -26,7 +26,7 @@ module.exports = __toCommonJS(lib_exports);
26
26
  var import_open_code_widget = require("./open-code-widget/index.cjs");
27
27
  __reExport(lib_exports, require("./open-code-widget/index.cjs"), module.exports);
28
28
  __reExport(lib_exports, require("./setup.cjs"), module.exports);
29
- const version = "1.1.16";
29
+ const version = "1.1.17";
30
30
  function install(app, options) {
31
31
  const components = [
32
32
  import_open_code_widget.OpenCodeWidget
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { App } from 'vue';
2
- declare const version = "1.1.16";
2
+ declare const version = "1.1.17";
3
3
  declare function install(app: App<any>, options?: any): void;
4
4
  export { install, version, };
5
5
  export * from './open-code-widget';
@@ -153,9 +153,10 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
153
153
  const reviewPanelVisible = (0, import_vue2.ref)(false);
154
154
  const isRestoring = (0, import_vue2.ref)(true);
155
155
  const iframeLoaded = (0, import_vue2.ref)(false);
156
+ const iframeReady = (0, import_vue2.ref)(false);
156
157
  const splitPanelWidth = (0, import_vue2.ref)(props.splitPanelWidth);
157
158
  const syncStateToIframe = () => {
158
- if (!iframeLoaded.value) return;
159
+ if (!iframeLoaded.value || !iframeReady.value) return;
159
160
  sendMessageToIframe(import_shared.WIDGET_MSG.PROMPT_DOCK_VISIBILITY, { visible: promptDockVisible.value });
160
161
  sendMessageToIframe(import_shared.WIDGET_MSG.MINIMIZE_STATE, { minimized: minimized.value });
161
162
  sendMessageToIframe(import_shared.WIDGET_MSG.REVIEW_PANEL_TOGGLE, { visible: reviewPanelVisible.value });
@@ -163,7 +164,6 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
163
164
  const handleFrameLoaded = () => {
164
165
  emit("frame-loaded");
165
166
  iframeLoaded.value = true;
166
- syncStateToIframe();
167
167
  };
168
168
  (0, import_vue2.watch)(
169
169
  () => props.sessionListCollapsed,
@@ -398,14 +398,23 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
398
398
  windowHeight.value = window.innerHeight;
399
399
  }
400
400
  };
401
+ const handleIframeMessage = (event) => {
402
+ var _a2;
403
+ if (((_a2 = event.data) == null ? void 0 : _a2.type) === import_shared.WIDGET_MSG.READY) {
404
+ iframeReady.value = true;
405
+ syncStateToIframe();
406
+ }
407
+ };
401
408
  (0, import_vue2.onMounted)(() => {
402
409
  if (typeof window !== "undefined") {
403
410
  window.addEventListener("resize", handleWindowResize);
411
+ window.addEventListener("message", handleIframeMessage);
404
412
  }
405
413
  });
406
414
  (0, import_vue2.onUnmounted)(() => {
407
415
  if (typeof window !== "undefined") {
408
416
  window.removeEventListener("resize", handleWindowResize);
417
+ window.removeEventListener("message", handleIframeMessage);
409
418
  }
410
419
  });
411
420
  const bubbleQuadrant = (0, import_vue2.computed)(() => {
@@ -588,7 +597,7 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
588
597
  return dialogResolve;
589
598
  }, set dialogResolve(v) {
590
599
  dialogResolve = v;
591
- }, showConfirmDialog, handleDialogConfirm, handleDialogCancel, frameRef, triggerRef, sendMessageToIframe, localSessionListCollapsed, localDisplayMode, localSplitPosition, minimized, promptDockVisible, reviewPanelVisible, isRestoring, iframeLoaded, splitPanelWidth, syncStateToIframe, handleFrameLoaded, handleToggleDisplayMode, buttonActive, containerClasses, iframeSource, sessionListTitle, resolvedTheme, handleClose, handleEmptyAction, handleToggle, handleToggleSessionList, handleToggleTheme, sessionItems, handleCreateSession, handleDeleteSession, handleSelectSession, bubbleVisible, hasSelectedElements, selectedElementItems, handleClearSelectedNodes, handleClickSelectedNode, handleRemoveSelectedNode, handleToggleSelectMode, highlightVisible, highlightStyle, tooltipVisible, tooltipStyle, tooltipContent, bubbleOffset, effectiveMode, isSplitMode, isExtensionMode, panelWidth, splitConfig, splitPosition, handleResize, handleSplitToggle, handleTogglePosition, handleToggleMinimize, handleTogglePromptDock, handleToggleReviewPanel, handleRefresh, windowWidth, windowHeight, handleWindowResize, bubbleQuadrant, isBubbleOnRightSide, chatPositionStyle, handleBubbleOffsetChange, handleResizeStart, handleResizeEnd, chatAnimationOrigin, isDragging, get wasOpenBeforeDrag() {
600
+ }, showConfirmDialog, handleDialogConfirm, handleDialogCancel, frameRef, triggerRef, sendMessageToIframe, localSessionListCollapsed, localDisplayMode, localSplitPosition, minimized, promptDockVisible, reviewPanelVisible, isRestoring, iframeLoaded, iframeReady, splitPanelWidth, syncStateToIframe, handleFrameLoaded, handleToggleDisplayMode, buttonActive, containerClasses, iframeSource, sessionListTitle, resolvedTheme, handleClose, handleEmptyAction, handleToggle, handleToggleSessionList, handleToggleTheme, sessionItems, handleCreateSession, handleDeleteSession, handleSelectSession, bubbleVisible, hasSelectedElements, selectedElementItems, handleClearSelectedNodes, handleClickSelectedNode, handleRemoveSelectedNode, handleToggleSelectMode, highlightVisible, highlightStyle, tooltipVisible, tooltipStyle, tooltipContent, bubbleOffset, effectiveMode, isSplitMode, isExtensionMode, panelWidth, splitConfig, splitPosition, handleResize, handleSplitToggle, handleTogglePosition, handleToggleMinimize, handleTogglePromptDock, handleToggleReviewPanel, handleRefresh, windowWidth, windowHeight, handleWindowResize, handleIframeMessage, bubbleQuadrant, isBubbleOnRightSide, chatPositionStyle, handleBubbleOffsetChange, handleResizeStart, handleResizeEnd, chatAnimationOrigin, isDragging, get wasOpenBeforeDrag() {
592
601
  return wasOpenBeforeDrag;
593
602
  }, set wasOpenBeforeDrag(v) {
594
603
  wasOpenBeforeDrag = v;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vite-plugin-opencode-assistant/components",
3
- "version": "1.1.16",
3
+ "version": "1.1.17",
4
4
  "description": "Reusable OpenCode widget components built with Pagoda CLI",
5
5
  "type": "module",
6
6
  "main": "lib/index.cjs",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "css-selector-generator": "^3.9.2",
34
- "@vite-plugin-opencode-assistant/shared": "1.1.16"
34
+ "@vite-plugin-opencode-assistant/shared": "1.1.17"
35
35
  },
36
36
  "scripts": {
37
37
  "build": "pagoda-cli build",