@vite-plugin-opencode-assistant/components 1.0.15 → 1.0.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 +1 -1
- package/es/index.js +1 -1
- package/es/open-code-widget/src/components/Frame.vue.d.ts +4 -1
- package/es/open-code-widget/src/components/Frame.vue.js +5 -23
- package/es/open-code-widget/src/components/Trigger-sfc.css +1 -1
- package/es/open-code-widget/src/components/Trigger.vue.js +9 -3
- package/es/open-code-widget/src/context.d.ts +1 -0
- package/es/open-code-widget/src/index-sfc.css +1 -1
- package/es/open-code-widget/src/index.vue.d.ts +20 -11
- package/es/open-code-widget/src/index.vue.js +40 -15
- package/lib/@vite-plugin-opencode-assistant/components.cjs.js +78 -129
- package/lib/@vite-plugin-opencode-assistant/components.es.js +79 -130
- package/lib/components.css +2 -3
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/open-code-widget/src/components/Frame.vue.d.ts +4 -1
- package/lib/open-code-widget/src/components/Frame.vue.js +4 -22
- package/lib/open-code-widget/src/components/Trigger-sfc.css +1 -1
- package/lib/open-code-widget/src/components/Trigger.vue.js +9 -3
- package/lib/open-code-widget/src/context.d.ts +1 -0
- package/lib/open-code-widget/src/index-sfc.css +1 -1
- package/lib/open-code-widget/src/index.vue.d.ts +20 -11
- package/lib/open-code-widget/src/index.vue.js +39 -14
- package/lib/web-types.json +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createStaticVNode, createVNode, defineComponent, inject, normalizeClass, normalizeStyle, onMounted, onUnmounted, openBlock, provide, ref, renderList, renderSlot, toDisplayString, toRef, useSlots, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
|
|
1
|
+
import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createStaticVNode, createVNode, defineComponent, inject, normalizeClass, normalizeStyle, onMounted, onUnmounted, openBlock, provide, ref, renderList, renderSlot, toDisplayString, toRef, useSlots, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
|
|
2
2
|
import { truncate } from "@vite-plugin-opencode-assistant/shared";
|
|
3
3
|
//#region es/open-code-widget/src/context.js
|
|
4
4
|
var CONTEXT_KEY = /* @__PURE__ */ Symbol("OpenCodeWidgetContext");
|
|
@@ -29,38 +29,22 @@ var __spreadValues$1 = (a, b) => {
|
|
|
29
29
|
}
|
|
30
30
|
return a;
|
|
31
31
|
};
|
|
32
|
-
var __vue_sfc__$
|
|
32
|
+
var __vue_sfc__$6 = /* @__PURE__ */ defineComponent({
|
|
33
33
|
__name: "Frame",
|
|
34
34
|
setup(__props, { expose: __expose }) {
|
|
35
|
-
__expose();
|
|
36
35
|
const iframeRef = ref(null);
|
|
37
|
-
const { frameLoading, showEmptyState, showError, iframeSource: iframeSrc, emptyStateText, emptyStateActionText, handleEmptyAction, handleFrameLoaded
|
|
38
|
-
const iframeReady = ref(false);
|
|
36
|
+
const { frameLoading, showEmptyState, showError, iframeSource: iframeSrc, emptyStateText, emptyStateActionText, handleEmptyAction, handleFrameLoaded } = useOpenCodeWidgetContext();
|
|
39
37
|
function sendMessageToIframe(type, data) {
|
|
40
38
|
var _a;
|
|
41
39
|
if (!((_a = iframeRef.value) == null ? void 0 : _a.contentWindow)) return;
|
|
42
40
|
iframeRef.value.contentWindow.postMessage(__spreadValues$1({ type }, data), "*");
|
|
43
41
|
}
|
|
44
|
-
function syncIframeTheme() {
|
|
45
|
-
sendMessageToIframe("OPENCODE_SET_THEME", { theme: resolvedTheme.value });
|
|
46
|
-
}
|
|
47
|
-
function handleIframeMessage(event) {
|
|
48
|
-
var _a;
|
|
49
|
-
if (((_a = event.data) == null ? void 0 : _a.type) === "OPENCODE_READY") syncIframeTheme();
|
|
50
|
-
}
|
|
51
|
-
watch([theme, resolvedTheme], () => {
|
|
52
|
-
syncIframeTheme();
|
|
53
|
-
});
|
|
54
42
|
onMounted(() => {
|
|
55
43
|
if (iframeRef.value) iframeRef.value.addEventListener("load", () => {
|
|
56
|
-
iframeReady.value = true;
|
|
57
44
|
handleFrameLoaded();
|
|
58
45
|
});
|
|
59
|
-
window.addEventListener("message", handleIframeMessage);
|
|
60
|
-
});
|
|
61
|
-
onUnmounted(() => {
|
|
62
|
-
window.removeEventListener("message", handleIframeMessage);
|
|
63
46
|
});
|
|
47
|
+
__expose({ sendMessageToIframe });
|
|
64
48
|
const __returned__ = {
|
|
65
49
|
iframeRef,
|
|
66
50
|
frameLoading,
|
|
@@ -71,12 +55,7 @@ var __vue_sfc__$7 = /* @__PURE__ */ defineComponent({
|
|
|
71
55
|
emptyStateActionText,
|
|
72
56
|
handleEmptyAction,
|
|
73
57
|
handleFrameLoaded,
|
|
74
|
-
|
|
75
|
-
resolvedTheme,
|
|
76
|
-
iframeReady,
|
|
77
|
-
sendMessageToIframe,
|
|
78
|
-
syncIframeTheme,
|
|
79
|
-
handleIframeMessage
|
|
58
|
+
sendMessageToIframe
|
|
80
59
|
};
|
|
81
60
|
Object.defineProperty(__returned__, "__isScriptSetup", {
|
|
82
61
|
enumerable: false,
|
|
@@ -85,11 +64,11 @@ var __vue_sfc__$7 = /* @__PURE__ */ defineComponent({
|
|
|
85
64
|
return __returned__;
|
|
86
65
|
}
|
|
87
66
|
});
|
|
88
|
-
var _hoisted_1$
|
|
89
|
-
var _hoisted_2$
|
|
90
|
-
var _hoisted_3$
|
|
91
|
-
function __vue_render__$
|
|
92
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
67
|
+
var _hoisted_1$6 = { class: "opencode-iframe-container" };
|
|
68
|
+
var _hoisted_2$4 = { class: "opencode-empty-state-text" };
|
|
69
|
+
var _hoisted_3$4 = ["src"];
|
|
70
|
+
function __vue_render__$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
71
|
+
return openBlock(), createElementBlock("div", _hoisted_1$6, [
|
|
93
72
|
createElementVNode("div", { class: normalizeClass(["opencode-empty-state-overlay", { visible: $setup.showEmptyState }]) }, [renderSlot(_ctx.$slots, "empty-state", {}, () => [
|
|
94
73
|
_cache[1] || (_cache[1] = createElementVNode("div", { class: "opencode-empty-state-icon" }, [createElementVNode("svg", {
|
|
95
74
|
viewBox: "0 0 24 24",
|
|
@@ -104,7 +83,7 @@ function __vue_render__$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
104
83
|
"stroke-linejoin": "round",
|
|
105
84
|
d: "M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 0 1-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"
|
|
106
85
|
})])], -1)),
|
|
107
|
-
createElementVNode("div", _hoisted_2$
|
|
86
|
+
createElementVNode("div", _hoisted_2$4, toDisplayString($setup.emptyStateText), 1),
|
|
108
87
|
createElementVNode("button", {
|
|
109
88
|
class: "opencode-empty-state-btn",
|
|
110
89
|
type: "button",
|
|
@@ -119,14 +98,14 @@ function __vue_render__$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
119
98
|
src: $setup.iframeSrc,
|
|
120
99
|
allow: "clipboard-write; clipboard-read",
|
|
121
100
|
referrerpolicy: "origin"
|
|
122
|
-
}, null, 8, _hoisted_3$
|
|
101
|
+
}, null, 8, _hoisted_3$4)])
|
|
123
102
|
]);
|
|
124
103
|
}
|
|
125
|
-
__vue_sfc__$
|
|
126
|
-
var Frame_vue_default = __vue_sfc__$
|
|
104
|
+
__vue_sfc__$6.render = __vue_render__$6;
|
|
105
|
+
var Frame_vue_default = __vue_sfc__$6;
|
|
127
106
|
//#endregion
|
|
128
107
|
//#region es/open-code-widget/src/components/Header.vue.js
|
|
129
|
-
var __vue_sfc__$
|
|
108
|
+
var __vue_sfc__$5 = /* @__PURE__ */ defineComponent({
|
|
130
109
|
__name: "Header",
|
|
131
110
|
setup(__props, { expose: __expose }) {
|
|
132
111
|
__expose();
|
|
@@ -165,15 +144,15 @@ var __vue_sfc__$6 = /* @__PURE__ */ defineComponent({
|
|
|
165
144
|
return __returned__;
|
|
166
145
|
}
|
|
167
146
|
});
|
|
168
|
-
var _hoisted_1$
|
|
169
|
-
var _hoisted_2$
|
|
170
|
-
var _hoisted_3$
|
|
147
|
+
var _hoisted_1$5 = { class: "opencode-chat-header" };
|
|
148
|
+
var _hoisted_2$3 = { class: "opencode-chat-header-left" };
|
|
149
|
+
var _hoisted_3$3 = [
|
|
171
150
|
"title",
|
|
172
151
|
"aria-label",
|
|
173
152
|
"aria-expanded"
|
|
174
153
|
];
|
|
175
|
-
var _hoisted_4$
|
|
176
|
-
var _hoisted_5$
|
|
154
|
+
var _hoisted_4$3 = ["aria-pressed", "disabled"];
|
|
155
|
+
var _hoisted_5$3 = ["title", "aria-label"];
|
|
177
156
|
var _hoisted_6$3 = {
|
|
178
157
|
key: 0,
|
|
179
158
|
viewBox: "0 0 24 24",
|
|
@@ -204,11 +183,11 @@ var _hoisted_8$2 = {
|
|
|
204
183
|
"stroke-width": "2",
|
|
205
184
|
"aria-hidden": "true"
|
|
206
185
|
};
|
|
207
|
-
var _hoisted_9$
|
|
186
|
+
var _hoisted_9$2 = { class: "opencode-chat-header-title" };
|
|
208
187
|
var _hoisted_10 = { class: "opencode-chat-header-actions" };
|
|
209
|
-
function __vue_render__$
|
|
210
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
211
|
-
createElementVNode("div", _hoisted_2$
|
|
188
|
+
function __vue_render__$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
189
|
+
return openBlock(), createElementBlock("div", _hoisted_1$5, [
|
|
190
|
+
createElementVNode("div", _hoisted_2$3, [
|
|
212
191
|
createElementVNode("button", {
|
|
213
192
|
class: normalizeClass(["opencode-header-btn session-toggle", { active: !$setup.sessionListCollapsed }]),
|
|
214
193
|
type: "button",
|
|
@@ -227,7 +206,7 @@ function __vue_render__$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
227
206
|
}, [createElementVNode("path", {
|
|
228
207
|
d: "M4 6h16M4 12h16M4 18h16",
|
|
229
208
|
"stroke-linecap": "round"
|
|
230
|
-
})], -1))])], 10, _hoisted_3$
|
|
209
|
+
})], -1))])], 10, _hoisted_3$3),
|
|
231
210
|
createElementVNode("button", {
|
|
232
211
|
class: normalizeClass(["opencode-header-btn select-btn", { active: $setup.selectMode }]),
|
|
233
212
|
type: "button",
|
|
@@ -247,16 +226,16 @@ function __vue_render__$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
247
226
|
}), createElementVNode("path", {
|
|
248
227
|
fill: "currentColor",
|
|
249
228
|
d: "M512 96a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V128a32 32 0 0 1 32-32m0 576a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V704a32 32 0 0 1 32-32M96 512a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H128a32 32 0 0 1-32-32m576 0a32 32 0 0 1 32-32h192a32 32 0 1 1 0 64H704a32 32 0 0 1-32-32"
|
|
250
|
-
})], -1))])], 10, _hoisted_4$
|
|
229
|
+
})], -1))])], 10, _hoisted_4$3),
|
|
251
230
|
createElementVNode("button", {
|
|
252
231
|
class: "opencode-header-btn theme-btn",
|
|
253
232
|
type: "button",
|
|
254
233
|
title: $setup.themeIconTitle,
|
|
255
234
|
"aria-label": $setup.themeIconLabel,
|
|
256
235
|
onClick: _cache[2] || (_cache[2] = (...args) => $setup.handleToggleTheme && $setup.handleToggleTheme(...args))
|
|
257
|
-
}, [renderSlot(_ctx.$slots, "theme-icon", {}, () => [$setup.theme === "light" ? (openBlock(), createElementBlock("svg", _hoisted_6$3, [..._cache[6] || (_cache[6] = [createStaticVNode("<circle cx=\"12\" cy=\"12\" r=\"5\"></circle><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"></line><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"></line><line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"></line><line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"></line><line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"></line><line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"></line><line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"></line><line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"></line>", 9)])])) : $setup.theme === "dark" ? (openBlock(), createElementBlock("svg", _hoisted_7$2, [..._cache[7] || (_cache[7] = [createElementVNode("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }, null, -1)])])) : (openBlock(), createElementBlock("svg", _hoisted_8$2, [..._cache[8] || (_cache[8] = [createStaticVNode("<rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"></rect><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"></line><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"></line><circle cx=\"12\" cy=\"10\" r=\"3\"></circle><path d=\"M7 7l2 2M17 7l-2 2M7 13l2-2M17 13l-2-2\"></path>", 5)])]))])], 8, _hoisted_5$
|
|
236
|
+
}, [renderSlot(_ctx.$slots, "theme-icon", {}, () => [$setup.theme === "light" ? (openBlock(), createElementBlock("svg", _hoisted_6$3, [..._cache[6] || (_cache[6] = [createStaticVNode("<circle cx=\"12\" cy=\"12\" r=\"5\"></circle><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"></line><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"></line><line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"></line><line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"></line><line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"></line><line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"></line><line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"></line><line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"></line>", 9)])])) : $setup.theme === "dark" ? (openBlock(), createElementBlock("svg", _hoisted_7$2, [..._cache[7] || (_cache[7] = [createElementVNode("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" }, null, -1)])])) : (openBlock(), createElementBlock("svg", _hoisted_8$2, [..._cache[8] || (_cache[8] = [createStaticVNode("<rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"></rect><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"></line><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"></line><circle cx=\"12\" cy=\"10\" r=\"3\"></circle><path d=\"M7 7l2 2M17 7l-2 2M7 13l2-2M17 13l-2-2\"></path>", 5)])]))])], 8, _hoisted_5$3)
|
|
258
237
|
]),
|
|
259
|
-
createElementVNode("span", _hoisted_9$
|
|
238
|
+
createElementVNode("span", _hoisted_9$2, toDisplayString($setup.title), 1),
|
|
260
239
|
createElementVNode("div", _hoisted_10, [createElementVNode("button", {
|
|
261
240
|
class: "opencode-header-btn close",
|
|
262
241
|
type: "button",
|
|
@@ -274,11 +253,11 @@ function __vue_render__$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
274
253
|
}, [createElementVNode("path", { d: "M18 6L6 18M6 6l12 12" })], -1))])])])
|
|
275
254
|
]);
|
|
276
255
|
}
|
|
277
|
-
__vue_sfc__$
|
|
278
|
-
var Header_vue_default = __vue_sfc__$
|
|
256
|
+
__vue_sfc__$5.render = __vue_render__$5;
|
|
257
|
+
var Header_vue_default = __vue_sfc__$5;
|
|
279
258
|
//#endregion
|
|
280
259
|
//#region es/open-code-widget/src/components/SelectHint.vue.js
|
|
281
|
-
var __vue_sfc__$
|
|
260
|
+
var __vue_sfc__$4 = /* @__PURE__ */ defineComponent({
|
|
282
261
|
__name: "SelectHint",
|
|
283
262
|
setup(__props, { expose: __expose }) {
|
|
284
263
|
__expose();
|
|
@@ -294,72 +273,12 @@ var __vue_sfc__$5 = /* @__PURE__ */ defineComponent({
|
|
|
294
273
|
return __returned__;
|
|
295
274
|
}
|
|
296
275
|
});
|
|
297
|
-
var _hoisted_1$
|
|
298
|
-
function __vue_render__$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
299
|
-
return openBlock(), createElementBlock("div", { class: normalizeClass(["opencode-select-mode-hint", { visible: $setup.visible }]) }, [_cache[0] || (_cache[0] = createElementVNode("span", null, "🎯 选择模式已开启 - 点击元素进行选择", -1)), createElementVNode("span", _hoisted_1$5, toDisplayString($setup.shortcutLabel), 1)], 2);
|
|
300
|
-
}
|
|
301
|
-
__vue_sfc__$5.render = __vue_render__$5;
|
|
302
|
-
var SelectHint_vue_default = __vue_sfc__$5;
|
|
303
|
-
//#endregion
|
|
304
|
-
//#region es/open-code-widget/src/components/SelectedBubbles.vue.js
|
|
305
|
-
var __vue_sfc__$4 = /* @__PURE__ */ defineComponent({
|
|
306
|
-
__name: "SelectedBubbles",
|
|
307
|
-
setup(__props, { expose: __expose }) {
|
|
308
|
-
__expose();
|
|
309
|
-
const { bubbleVisible: visible, selectedElementItems: items, handleClickSelectedNode, handleRemoveSelectedNode } = useOpenCodeWidgetContext();
|
|
310
|
-
const __returned__ = {
|
|
311
|
-
visible,
|
|
312
|
-
items,
|
|
313
|
-
handleClickSelectedNode,
|
|
314
|
-
handleRemoveSelectedNode
|
|
315
|
-
};
|
|
316
|
-
Object.defineProperty(__returned__, "__isScriptSetup", {
|
|
317
|
-
enumerable: false,
|
|
318
|
-
value: true
|
|
319
|
-
});
|
|
320
|
-
return __returned__;
|
|
321
|
-
}
|
|
322
|
-
});
|
|
323
|
-
var _hoisted_1$4 = {
|
|
324
|
-
key: 0,
|
|
325
|
-
class: "opencode-bubble-empty"
|
|
326
|
-
};
|
|
327
|
-
var _hoisted_2$3 = ["onClick"];
|
|
328
|
-
var _hoisted_3$3 = { class: "opencode-bubble-text" };
|
|
329
|
-
var _hoisted_4$3 = {
|
|
330
|
-
key: 0,
|
|
331
|
-
class: "opencode-bubble-file"
|
|
332
|
-
};
|
|
333
|
-
var _hoisted_5$3 = ["aria-label", "onClick"];
|
|
276
|
+
var _hoisted_1$4 = { class: "opencode-hint-shortcut" };
|
|
334
277
|
function __vue_render__$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
335
|
-
return openBlock(), createElementBlock("div", {
|
|
336
|
-
class: normalizeClass(["opencode-selected-bubbles", { visible: $setup.visible }]),
|
|
337
|
-
role: "list",
|
|
338
|
-
"aria-label": "已选元素列表"
|
|
339
|
-
}, [$setup.items.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_1$4, "暂无选中元素")) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList($setup.items, (item, index) => {
|
|
340
|
-
return openBlock(), createElementBlock("div", {
|
|
341
|
-
key: item.key,
|
|
342
|
-
class: "opencode-selected-bubble",
|
|
343
|
-
role: "listitem",
|
|
344
|
-
onClick: ($event) => $setup.handleClickSelectedNode(item)
|
|
345
|
-
}, [
|
|
346
|
-
createElementVNode("span", _hoisted_3$3, toDisplayString(item.description), 1),
|
|
347
|
-
item.bubbleFileText ? (openBlock(), createElementBlock("span", _hoisted_4$3, toDisplayString(item.bubbleFileText), 1)) : createCommentVNode("v-if", true),
|
|
348
|
-
createElementVNode("button", {
|
|
349
|
-
class: "opencode-bubble-remove",
|
|
350
|
-
type: "button",
|
|
351
|
-
"aria-label": `\u79FB\u9664\u5143\u7D20: ${item.description}`,
|
|
352
|
-
onClick: withModifiers(($event) => $setup.handleRemoveSelectedNode({
|
|
353
|
-
item,
|
|
354
|
-
index,
|
|
355
|
-
source: "bubble"
|
|
356
|
-
}), ["stop"])
|
|
357
|
-
}, " × ", 8, _hoisted_5$3)
|
|
358
|
-
], 8, _hoisted_2$3);
|
|
359
|
-
}), 128))], 2);
|
|
278
|
+
return openBlock(), createElementBlock("div", { class: normalizeClass(["opencode-select-mode-hint", { visible: $setup.visible }]) }, [_cache[0] || (_cache[0] = createElementVNode("span", null, "🎯 选择模式已开启 - 点击元素进行选择", -1)), createElementVNode("span", _hoisted_1$4, toDisplayString($setup.shortcutLabel), 1)], 2);
|
|
360
279
|
}
|
|
361
280
|
__vue_sfc__$4.render = __vue_render__$4;
|
|
362
|
-
var
|
|
281
|
+
var SelectHint_vue_default = __vue_sfc__$4;
|
|
363
282
|
//#endregion
|
|
364
283
|
//#region es/open-code-widget/src/components/SelectedNodes.vue.js
|
|
365
284
|
var __vue_sfc__$3 = /* @__PURE__ */ defineComponent({
|
|
@@ -488,7 +407,7 @@ var _hoisted_5$1 = ["aria-selected", "onClick"];
|
|
|
488
407
|
var _hoisted_6$1 = { class: "opencode-session-header" };
|
|
489
408
|
var _hoisted_7$1 = { class: "opencode-session-title" };
|
|
490
409
|
var _hoisted_8$1 = ["aria-label", "onClick"];
|
|
491
|
-
var _hoisted_9 = { class: "opencode-session-meta" };
|
|
410
|
+
var _hoisted_9$1 = { class: "opencode-session-meta" };
|
|
492
411
|
function __vue_render__$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
493
412
|
return openBlock(), createElementBlock("div", { class: normalizeClass(["opencode-session-list", { collapsed: $setup.collapsed }]) }, [
|
|
494
413
|
createCommentVNode(" Header "),
|
|
@@ -517,7 +436,7 @@ function __vue_render__$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
517
436
|
type: "button",
|
|
518
437
|
"aria-label": `\u5220\u9664\u4F1A\u8BDD: ${item.title}`,
|
|
519
438
|
onClick: withModifiers(($event) => $setup.handleDeleteSession(item), ["stop"])
|
|
520
|
-
}, " × ", 8, _hoisted_8$1)]), createElementVNode("div", _hoisted_9, toDisplayString(item.meta), 1)], 10, _hoisted_5$1);
|
|
439
|
+
}, " × ", 8, _hoisted_8$1)]), createElementVNode("div", _hoisted_9$1, toDisplayString(item.meta), 1)], 10, _hoisted_5$1);
|
|
521
440
|
}), 128)) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [createCommentVNode(" Empty State "), renderSlot(_ctx.$slots, "empty")], 64))])], 2112))
|
|
522
441
|
], 2);
|
|
523
442
|
}
|
|
@@ -529,11 +448,12 @@ var __vue_sfc__$1 = /* @__PURE__ */ defineComponent({
|
|
|
529
448
|
__name: "Trigger",
|
|
530
449
|
setup(__props, { expose: __expose }) {
|
|
531
450
|
__expose();
|
|
532
|
-
const { buttonActive: active, open, hotkeyLabel, handleToggle } = useOpenCodeWidgetContext();
|
|
451
|
+
const { buttonActive: active, open, hotkeyLabel, thinking, handleToggle } = useOpenCodeWidgetContext();
|
|
533
452
|
const __returned__ = {
|
|
534
453
|
active,
|
|
535
454
|
open,
|
|
536
455
|
hotkeyLabel,
|
|
456
|
+
thinking,
|
|
537
457
|
handleToggle
|
|
538
458
|
};
|
|
539
459
|
Object.defineProperty(__returned__, "__isScriptSetup", {
|
|
@@ -546,7 +466,10 @@ var __vue_sfc__$1 = /* @__PURE__ */ defineComponent({
|
|
|
546
466
|
var _hoisted_1$1 = ["aria-expanded", "title"];
|
|
547
467
|
function __vue_render__$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
548
468
|
return openBlock(), createElementBlock("button", {
|
|
549
|
-
class: normalizeClass(["opencode-button", {
|
|
469
|
+
class: normalizeClass(["opencode-button", {
|
|
470
|
+
active: $setup.active,
|
|
471
|
+
thinking: $setup.thinking
|
|
472
|
+
}]),
|
|
550
473
|
type: "button",
|
|
551
474
|
"aria-expanded": $setup.open,
|
|
552
475
|
"aria-label": "打开 AI 助手",
|
|
@@ -1165,6 +1088,11 @@ var __vue_sfc__ = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
1165
1088
|
type: Boolean,
|
|
1166
1089
|
required: false,
|
|
1167
1090
|
default: true
|
|
1091
|
+
},
|
|
1092
|
+
thinking: {
|
|
1093
|
+
type: Boolean,
|
|
1094
|
+
required: false,
|
|
1095
|
+
default: false
|
|
1168
1096
|
}
|
|
1169
1097
|
},
|
|
1170
1098
|
emits: [
|
|
@@ -1174,6 +1102,7 @@ var __vue_sfc__ = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
1174
1102
|
"update:currentSessionId",
|
|
1175
1103
|
"update:selectedElements",
|
|
1176
1104
|
"update:theme",
|
|
1105
|
+
"update:thinking",
|
|
1177
1106
|
"toggle",
|
|
1178
1107
|
"close",
|
|
1179
1108
|
"toggle-session-list",
|
|
@@ -1186,7 +1115,8 @@ var __vue_sfc__ = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
1186
1115
|
"remove-selected-node",
|
|
1187
1116
|
"clear-selected-nodes",
|
|
1188
1117
|
"empty-action",
|
|
1189
|
-
"frame-loaded"
|
|
1118
|
+
"frame-loaded",
|
|
1119
|
+
"thinking-change"
|
|
1190
1120
|
],
|
|
1191
1121
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
1192
1122
|
const props = __props;
|
|
@@ -1194,10 +1124,13 @@ var __vue_sfc__ = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
1194
1124
|
const slots = useSlots();
|
|
1195
1125
|
const notificationMessage = ref("");
|
|
1196
1126
|
const notificationVisible = ref(false);
|
|
1127
|
+
const notificationMode = ref("widget");
|
|
1197
1128
|
let notificationTimer = null;
|
|
1198
|
-
const showNotification = (message,
|
|
1129
|
+
const showNotification = (message, options) => {
|
|
1130
|
+
const { duration = 3e3, mode = "widget" } = options || {};
|
|
1199
1131
|
notificationMessage.value = message;
|
|
1200
1132
|
notificationVisible.value = true;
|
|
1133
|
+
notificationMode.value = mode;
|
|
1201
1134
|
if (notificationTimer) clearTimeout(notificationTimer);
|
|
1202
1135
|
notificationTimer = setTimeout(() => {
|
|
1203
1136
|
notificationVisible.value = false;
|
|
@@ -1221,12 +1154,18 @@ var __vue_sfc__ = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
1221
1154
|
dialogVisible.value = false;
|
|
1222
1155
|
if (dialogResolve) dialogResolve(false);
|
|
1223
1156
|
};
|
|
1157
|
+
const frameRef = ref(null);
|
|
1158
|
+
const sendMessageToIframe = (type, data) => {
|
|
1159
|
+
var _a;
|
|
1160
|
+
(_a = frameRef.value) == null || _a.sendMessageToIframe(type, data);
|
|
1161
|
+
};
|
|
1224
1162
|
const handleFrameLoaded = () => {
|
|
1225
1163
|
emit("frame-loaded");
|
|
1226
1164
|
};
|
|
1227
1165
|
__expose({
|
|
1228
1166
|
showNotification,
|
|
1229
|
-
showConfirmDialog
|
|
1167
|
+
showConfirmDialog,
|
|
1168
|
+
sendMessageToIframe
|
|
1230
1169
|
});
|
|
1231
1170
|
const localSessionListCollapsed = ref(props.sessionListCollapsed);
|
|
1232
1171
|
watch(() => props.sessionListCollapsed, (val) => {
|
|
@@ -1323,6 +1262,7 @@ var __vue_sfc__ = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
1323
1262
|
emptyStateActionText: toRef(props, "emptyStateActionText"),
|
|
1324
1263
|
showClearAll: toRef(props, "showClearAll"),
|
|
1325
1264
|
open: toRef(props, "open"),
|
|
1265
|
+
thinking: toRef(props, "thinking"),
|
|
1326
1266
|
iframeSource,
|
|
1327
1267
|
buttonActive,
|
|
1328
1268
|
sessionListTitle,
|
|
@@ -1350,6 +1290,7 @@ var __vue_sfc__ = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
1350
1290
|
slots,
|
|
1351
1291
|
notificationMessage,
|
|
1352
1292
|
notificationVisible,
|
|
1293
|
+
notificationMode,
|
|
1353
1294
|
get notificationTimer() {
|
|
1354
1295
|
return notificationTimer;
|
|
1355
1296
|
},
|
|
@@ -1368,6 +1309,8 @@ var __vue_sfc__ = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
1368
1309
|
showConfirmDialog,
|
|
1369
1310
|
handleDialogConfirm,
|
|
1370
1311
|
handleDialogCancel,
|
|
1312
|
+
frameRef,
|
|
1313
|
+
sendMessageToIframe,
|
|
1371
1314
|
handleFrameLoaded,
|
|
1372
1315
|
localSessionListCollapsed,
|
|
1373
1316
|
buttonActive,
|
|
@@ -1399,7 +1342,6 @@ var __vue_sfc__ = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({
|
|
|
1399
1342
|
Frame: Frame_vue_default,
|
|
1400
1343
|
Header: Header_vue_default,
|
|
1401
1344
|
SelectHint: SelectHint_vue_default,
|
|
1402
|
-
SelectedBubbles: SelectedBubbles_vue_default,
|
|
1403
1345
|
SelectedNodes: SelectedNodes_vue_default,
|
|
1404
1346
|
SessionList: SessionList_vue_default,
|
|
1405
1347
|
Trigger: Trigger_vue_default
|
|
@@ -1420,7 +1362,7 @@ var _hoisted_2 = { class: "opencode-chat-content" };
|
|
|
1420
1362
|
var _hoisted_3 = { class: "opencode-tooltip-tag" };
|
|
1421
1363
|
var _hoisted_4 = { class: "opencode-tooltip-file" };
|
|
1422
1364
|
var _hoisted_5 = {
|
|
1423
|
-
key:
|
|
1365
|
+
key: 0,
|
|
1424
1366
|
class: "opencode-dialog-overlay"
|
|
1425
1367
|
};
|
|
1426
1368
|
var _hoisted_6 = {
|
|
@@ -1430,6 +1372,11 @@ var _hoisted_6 = {
|
|
|
1430
1372
|
};
|
|
1431
1373
|
var _hoisted_7 = { class: "opencode-dialog-content" };
|
|
1432
1374
|
var _hoisted_8 = { class: "opencode-dialog-message" };
|
|
1375
|
+
var _hoisted_9 = {
|
|
1376
|
+
key: 0,
|
|
1377
|
+
class: "opencode-page-notification",
|
|
1378
|
+
role: "alert"
|
|
1379
|
+
};
|
|
1433
1380
|
function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
1434
1381
|
return openBlock(), createElementBlock("div", { class: normalizeClass($setup.containerClasses) }, [
|
|
1435
1382
|
createVNode($setup["Trigger"], null, createSlots({ _: 2 }, [$setup.slots["button-icon"] ? {
|
|
@@ -1437,7 +1384,7 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1437
1384
|
fn: withCtx(() => [renderSlot(_ctx.$slots, "button-icon")]),
|
|
1438
1385
|
key: "0"
|
|
1439
1386
|
} : void 0]), 1024),
|
|
1440
|
-
|
|
1387
|
+
createCommentVNode(" <SelectedBubbles v-if=\"bubbleVisible\" /> "),
|
|
1441
1388
|
withDirectives(createElementVNode("div", { class: normalizeClass(["opencode-chat", { open: $props.open }]) }, [
|
|
1442
1389
|
createVNode($setup["Header"], null, createSlots({ _: 2 }, [
|
|
1443
1390
|
$setup.slots["session-toggle-icon"] ? {
|
|
@@ -1457,13 +1404,13 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1457
1404
|
} : void 0
|
|
1458
1405
|
]), 1024),
|
|
1459
1406
|
createCommentVNode(" Notification "),
|
|
1460
|
-
$setup.notificationVisible ? (openBlock(), createElementBlock("div", _hoisted_1, toDisplayString($setup.notificationMessage), 1)) : createCommentVNode("v-if", true),
|
|
1407
|
+
$setup.notificationVisible && $setup.notificationMode === "widget" ? (openBlock(), createElementBlock("div", _hoisted_1, toDisplayString($setup.notificationMessage), 1)) : createCommentVNode("v-if", true),
|
|
1461
1408
|
createElementVNode("div", _hoisted_2, [
|
|
1462
1409
|
createVNode($setup["SessionList"], null, {
|
|
1463
1410
|
empty: withCtx(() => [renderSlot(_ctx.$slots, "sessions-empty", {}, () => [_cache[0] || (_cache[0] = createElementVNode("div", { class: "opencode-session-empty" }, "暂无会话", -1))])]),
|
|
1464
1411
|
_: 3
|
|
1465
1412
|
}),
|
|
1466
|
-
createVNode($setup["Frame"],
|
|
1413
|
+
createVNode($setup["Frame"], { ref: "frameRef" }, createSlots({ _: 2 }, [
|
|
1467
1414
|
$setup.slots["empty-state"] ? {
|
|
1468
1415
|
name: "empty-state",
|
|
1469
1416
|
fn: withCtx(() => [renderSlot(_ctx.$slots, "empty-state")]),
|
|
@@ -1484,7 +1431,7 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1484
1431
|
fn: withCtx(() => [renderSlot(_ctx.$slots, "content")]),
|
|
1485
1432
|
key: "3"
|
|
1486
1433
|
} : void 0
|
|
1487
|
-
]),
|
|
1434
|
+
]), 1536),
|
|
1488
1435
|
createVNode($setup["SelectedNodes"])
|
|
1489
1436
|
])
|
|
1490
1437
|
], 2), [[vShow, !$props.selectMode]]),
|
|
@@ -1506,7 +1453,9 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
1506
1453
|
}, "取消"), createElementVNode("button", {
|
|
1507
1454
|
class: "opencode-dialog-btn confirm",
|
|
1508
1455
|
onClick: $setup.handleDialogConfirm
|
|
1509
|
-
}, "确认")])])])) : createCommentVNode("v-if", true)
|
|
1456
|
+
}, "确认")])])])) : createCommentVNode("v-if", true),
|
|
1457
|
+
createCommentVNode(" Page-level Notification "),
|
|
1458
|
+
(openBlock(), createBlock(Teleport, { to: "body" }, [$setup.notificationVisible && $setup.notificationMode === "page" ? (openBlock(), createElementBlock("div", _hoisted_9, toDisplayString($setup.notificationMessage), 1)) : createCommentVNode("v-if", true)]))
|
|
1510
1459
|
], 2);
|
|
1511
1460
|
}
|
|
1512
1461
|
__vue_sfc__.render = __vue_render__;
|
|
@@ -1515,7 +1464,7 @@ __vue_sfc__.render = __vue_render__;
|
|
|
1515
1464
|
var open_code_widget_default = __vue_sfc__;
|
|
1516
1465
|
//#endregion
|
|
1517
1466
|
//#region es/index.js
|
|
1518
|
-
var version = "1.0.
|
|
1467
|
+
var version = "1.0.17";
|
|
1519
1468
|
function install(app, options) {
|
|
1520
1469
|
[open_code_widget_default].forEach((item) => {
|
|
1521
1470
|
if (item.install) app.use(item, options);
|
package/lib/components.css
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
.opencode-widget{--oc-bg-main: #ffffff;--oc-bg-secondary: #f8f9fa;--oc-bg-tertiary: #f3f4f6;--oc-overlay-bg: rgba(255, 255, 255, .9);--oc-bg-inverse: #1e1e1e;--oc-text-primary: #282828;--oc-text-secondary: #4b5563;--oc-text-tertiary: #6b7280;--oc-text-placeholder: #9ca3af;--oc-text-inverse: #ffffff;--oc-border-primary: #e5e7eb;--oc-border-secondary: #d1d5db;--oc-primary: #3b82f6;--oc-primary-hover: #2563eb;--oc-primary-bg: rgba(59, 130, 246, .1);--oc-danger: #ef4444;--oc-danger-hover: #dc2626;--oc-danger-active: #b91c1c;--oc-success: #10b981;--oc-overlay: rgba(0, 0, 0, .5);--oc-tooltip-bg: #1e1e1e;--oc-dialog-overlay: rgba(0, 0, 0, .5);--oc-skeleton-bg: #e5e7eb;--oc-skeleton-gradient: linear-gradient(90deg, #e5e7eb 25%, #f3f4f6 50%, #e5e7eb 75%);--oc-shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--oc-shadow-md: 0 4px 12px rgba(0, 0, 0, .15);--oc-shadow-lg: 0 8px 32px rgba(0, 0, 0, .12);--oc-shadow-xl: 0 20px 60px rgba(0, 0, 0, .3);--oc-shadow-primary: 0 2px 4px rgba(59, 130, 246, .2);--oc-shadow-primary-hover: 0 4px 6px rgba(59, 130, 246, .3);--oc-shadow-danger: 0 4px 12px rgba(239, 68, 68, .3);--oc-trigger-bg:
|
|
1
|
+
.opencode-widget{--oc-bg-main: #ffffff;--oc-bg-secondary: #f8f9fa;--oc-bg-tertiary: #f3f4f6;--oc-overlay-bg: rgba(255, 255, 255, .9);--oc-bg-inverse: #1e1e1e;--oc-text-primary: #282828;--oc-text-secondary: #4b5563;--oc-text-tertiary: #6b7280;--oc-text-placeholder: #9ca3af;--oc-text-inverse: #ffffff;--oc-border-primary: #e5e7eb;--oc-border-secondary: #d1d5db;--oc-primary: #3b82f6;--oc-primary-hover: #2563eb;--oc-primary-bg: rgba(59, 130, 246, .1);--oc-danger: #ef4444;--oc-danger-hover: #dc2626;--oc-danger-active: #b91c1c;--oc-success: #10b981;--oc-overlay: rgba(0, 0, 0, .5);--oc-tooltip-bg: #1e1e1e;--oc-dialog-overlay: rgba(0, 0, 0, .5);--oc-thinking-gradient-1: #10b981;--oc-thinking-gradient-2: #059669;--oc-thinking-glow: rgba(16, 185, 129, .3);--oc-thinking-glow-strong: rgba(16, 185, 129, .6);--oc-skeleton-bg: #e5e7eb;--oc-skeleton-gradient: linear-gradient(90deg, #e5e7eb 25%, #f3f4f6 50%, #e5e7eb 75%);--oc-shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--oc-shadow-md: 0 4px 12px rgba(0, 0, 0, .15);--oc-shadow-lg: 0 8px 32px rgba(0, 0, 0, .12);--oc-shadow-xl: 0 20px 60px rgba(0, 0, 0, .3);--oc-shadow-primary: 0 2px 4px rgba(59, 130, 246, .2);--oc-shadow-primary-hover: 0 4px 6px rgba(59, 130, 246, .3);--oc-shadow-danger: 0 4px 12px rgba(239, 68, 68, .3);--oc-trigger-bg: #3b82f6;--oc-trigger-bg-hover: #2563eb;--oc-trigger-bg-active: #1d4ed8;--oc-trigger-shadow: 0 2px 8px rgba(59, 130, 246, .3);--oc-trigger-shadow-hover: 0 4px 12px rgba(59, 130, 246, .4);--oc-trigger-shadow-active: 0 4px 12px rgba(59, 130, 246, .5);position:fixed;z-index:999999;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.opencode-widget.opencode-theme-dark{--oc-bg-main: #1a1a1a;--oc-bg-secondary: #1e1e1e;--oc-bg-tertiary: #282828;--oc-overlay-bg: rgba(26, 26, 26, .9);--oc-bg-inverse: #ffffff;--oc-text-primary: #f3f4f6;--oc-text-secondary: #d1d5db;--oc-text-tertiary: #9ca3af;--oc-text-placeholder: #6b7280;--oc-text-inverse: #282828;--oc-border-primary: #282828;--oc-border-secondary: #4b5563;--oc-primary: #3b82f6;--oc-primary-hover: #2563eb;--oc-primary-bg: rgba(59, 130, 246, .15);--oc-danger: #ef4444;--oc-danger-hover: #dc2626;--oc-danger-active: #b91c1c;--oc-success: #10b981;--oc-overlay: rgba(26, 26, 26, .9);--oc-tooltip-bg: #282828;--oc-dialog-overlay: rgba(0, 0, 0, .7);--oc-thinking-gradient-1: #34d399;--oc-thinking-gradient-2: #10b981;--oc-thinking-glow: rgba(52, 211, 153, .3);--oc-thinking-glow-strong: rgba(52, 211, 153, .6);--oc-skeleton-bg: #151515;--oc-skeleton-gradient: linear-gradient(90deg, #282828 25%, #4b5563 50%, #282828 75%);--oc-shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--oc-shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--oc-shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--oc-shadow-xl: 0 20px 60px rgba(0, 0, 0, .6);--oc-shadow-primary: 0 2px 4px rgba(59, 130, 246, .3);--oc-shadow-primary-hover: 0 4px 6px rgba(59, 130, 246, .4);--oc-shadow-danger: 0 4px 12px rgba(239, 68, 68, .4);--oc-trigger-bg: #60a5fa;--oc-trigger-bg-hover: #3b82f6;--oc-trigger-bg-active: #2563eb;--oc-trigger-shadow: 0 2px 8px rgba(96, 165, 250, .4);--oc-trigger-shadow-hover: 0 4px 12px rgba(96, 165, 250, .5);--oc-trigger-shadow-active: 0 4px 12px rgba(96, 165, 250, .6)}.opencode-widget.bottom-right{bottom:20px;right:20px}.opencode-widget.bottom-left{bottom:20px;left:20px}.opencode-widget.top-right{top:20px;right:20px}.opencode-widget.top-left{top:20px;left:20px}.opencode-chat{position:absolute;width:700px;height:86vh;background:var(--oc-bg-main);border-radius:16px;box-shadow:var(--oc-shadow-lg);overflow:hidden;opacity:0;visibility:hidden;transform:translateY(20px) scale(.95);transition:all .3s ease;display:flex;flex-direction:column}.opencode-chat-content{display:flex;flex:1;overflow:hidden}.opencode-widget.bottom-right .opencode-chat{bottom:56px;right:0}.opencode-widget.bottom-left .opencode-chat{bottom:56px;left:0}.opencode-widget.top-right .opencode-chat{top:56px;right:0}.opencode-widget.top-left .opencode-chat{top:56px;left:0}.opencode-widget.bottom-right .opencode-selected-bubbles{bottom:56px;right:0}.opencode-widget.bottom-left .opencode-selected-bubbles{bottom:56px;left:0}.opencode-widget.top-right .opencode-selected-bubbles{top:56px;bottom:auto;right:0}.opencode-widget.top-left .opencode-selected-bubbles{top:56px;bottom:auto;left:0}.opencode-chat.open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.opencode-notification{position:absolute;top:20px;left:50%;transform:translate(-50%);padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 4px 16px rgba(59,130,246,.4),0 0 0 2px rgba(59,130,246,.2);animation:slideDown .3s ease;z-index:10000000;display:flex;align-items:center;gap:10px}.opencode-notification:before{content:"\1f4a1";font-size:16px}.opencode-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--oc-dialog-overlay);display:flex;align-items:center;justify-content:center;z-index:9999999;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.opencode-dialog{background:var(--oc-bg-main);border-radius:12px;padding:24px;min-width:320px;max-width:400px;box-shadow:var(--oc-shadow-xl);animation:scaleIn .2s ease}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.opencode-dialog-content{margin-bottom:20px}.opencode-dialog-message{font-size:15px;color:var(--oc-text-primary);line-height:1.5}.opencode-dialog-actions{display:flex;gap:12px;justify-content:flex-end}.opencode-dialog-btn{padding:10px 20px;border-radius:8px;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.opencode-dialog-btn.cancel{background:var(--oc-bg-tertiary);color:var(--oc-text-primary)}.opencode-dialog-btn.cancel:hover{background:var(--oc-text-primary);color:var(--oc-bg-main)}.opencode-dialog-btn.confirm{background:var(--oc-danger);color:#fff}.opencode-dialog-btn.confirm:hover{background:var(--oc-danger-hover)}@keyframes slideDown{0%{transform:translate(-50%) translateY(-100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.opencode-page-notification{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 4px 16px rgba(59,130,246,.4),0 0 0 2px rgba(59,130,246,.2);animation:slideDown .3s ease;z-index:2147483647;display:flex;align-items:center;gap:10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.opencode-page-notification:before{content:"\1f4a1";font-size:16px}.opencode-element-highlight{position:fixed;pointer-events:none;z-index:999998;display:none;transition:all .1s ease;border-radius:4px}#vue-inspector-container{display:none!important}.opencode-element-tooltip{position:fixed;background:var(--oc-tooltip-bg);color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;z-index:9999998;display:none;box-shadow:var(--oc-shadow-md);max-width:300px;pointer-events:none}.opencode-tooltip-tag{font-weight:500;margin-bottom:4px;word-break:break-all}.opencode-tooltip-file{font-size:11px;color:var(--oc-text-placeholder);word-break:break-all}.opencode-element-highlight-temp{position:absolute;pointer-events:none;z-index:999998;border-radius:4px;animation:highlight-pulse 2s ease-out forwards}@keyframes highlight-pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.02)}to{opacity:0;transform:scale(1)}}@media(max-width:768px){.opencode-chat{width:calc(100vw - 40px);height:calc(100vh - 100px)}}
|
|
2
2
|
.opencode-iframe-container{flex:1;position:relative;overflow:hidden;display:flex;flex-direction:column;margin-top:-42px}.opencode-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--oc-overlay-bg);display:none;flex-direction:column;align-items:center;justify-content:center;z-index:10;transition:opacity .3s ease}.opencode-loading-overlay.visible{display:flex}.opencode-loading-spinner{width:40px;height:40px;border:3px solid var(--oc-border-primary);border-top-color:var(--oc-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.opencode-loading-text{margin-top:12px;font-size:14px;color:var(--oc-text-placeholder)}.opencode-error-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:15;margin-top:42px;display:none}.opencode-error-overlay.visible{display:flex}.opencode-empty-state-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--oc-bg-secondary);display:none;flex-direction:column;align-items:center;justify-content:center;z-index:5;transition:opacity .3s ease;margin-top:42px}.opencode-empty-state-overlay.visible{display:flex}.opencode-empty-state-icon{color:var(--oc-text-placeholder);margin-bottom:16px}.opencode-empty-state-text{color:var(--oc-text-primary);font-size:16px;font-weight:500;margin-bottom:24px}.opencode-empty-state-btn{padding:10px 24px;border-radius:8px;border:none;background:var(--oc-primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;box-shadow:var(--oc-shadow-primary)}.opencode-empty-state-btn:hover{background:var(--oc-primary-hover);transform:translateY(-1px);box-shadow:var(--oc-shadow-primary-hover)}.opencode-empty-state-btn:active{transform:translateY(0)}.opencode-iframe{width:100%;height:100%;border:none}
|
|
3
3
|
.opencode-chat-header{position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 12px;height:40px;background:var(--oc-bg-secondary);border-bottom:1px solid var(--oc-border-primary);z-index:5}.opencode-chat-header-left{display:flex;align-items:center;gap:4px}.opencode-chat-header-title{font-size:14px;font-weight:600;color:var(--oc-text-primary);position:absolute;left:50%;transform:translate(-50%)}.opencode-chat-header-actions{display:flex;gap:4px}.opencode-header-btn{width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--oc-text-placeholder);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.opencode-header-btn:hover{background:var(--oc-bg-tertiary);color:var(--oc-text-primary)}.opencode-header-btn.close:hover{background:var(--oc-danger);color:#fff}.opencode-header-btn.select-btn.active,.opencode-header-btn.session-toggle.active{background:var(--oc-primary);color:#fff}
|
|
4
4
|
.opencode-select-mode-hint{position:fixed;top:20px;left:50%;transform:translate(-50%);padding:10px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-radius:12px;font-size:14px;font-weight:500;box-shadow:0 6px 20px rgba(239,68,68,.5),0 0 0 3px rgba(239,68,68,.3);z-index:9999999;display:none;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.3)}.opencode-select-mode-hint.visible{display:flex;animation:slideDown .3s ease,pulseHint 2s ease-in-out infinite}.opencode-hint-shortcut{padding:4px 10px;background:rgba(255,255,255,.25);border-radius:6px;font-size:13px;font-weight:600;border:1px solid rgba(255,255,255,.4)}@keyframes pulseHint{0%,to{box-shadow:0 6px 20px rgba(239,68,68,.5),0 0 0 3px rgba(239,68,68,.3)}50%{box-shadow:0 6px 20px rgba(239,68,68,.6),0 0 0 6px rgba(239,68,68,.4)}}
|
|
5
|
-
.opencode-selected-bubbles{position:absolute;display:none;flex-direction:column;gap:6px;max-width:220px;max-height:300px;overflow-y:auto}.opencode-selected-bubbles.visible{display:flex}.opencode-selected-bubble{display:flex;flex-direction:column;gap:2px;padding:8px 24px 8px 10px;background:var(--oc-bg-main);border:1px solid var(--oc-border-primary);border-radius:8px;font-size:12px;box-shadow:var(--oc-shadow-sm);position:relative;cursor:pointer;transition:all .2s}.opencode-selected-bubble:hover{border-color:var(--oc-primary);box-shadow:var(--oc-shadow-primary)}.opencode-bubble-text{color:var(--oc-text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opencode-bubble-file{color:var(--oc-text-placeholder);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opencode-bubble-remove{position:absolute;top:8px;right:6px;width:16px;height:16px;border-radius:50%;border:none;background:transparent;color:var(--oc-text-placeholder);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s}.opencode-bubble-remove:hover{background:var(--oc-danger);color:#fff}.opencode-bubble-empty{padding:8px 12px;background:var(--oc-bg-main);border:1px dashed var(--oc-border-secondary);border-radius:8px;color:var(--oc-text-placeholder);font-size:12px;text-align:center}
|
|
6
5
|
.opencode-right-toolbar{width:140px;background:var(--oc-bg-secondary);border-left:1px solid var(--oc-border-primary);display:flex;flex-direction:column;flex-shrink:0;transition:width .2s ease;overflow:hidden}.opencode-right-toolbar.collapsed{width:0;overflow:hidden}.opencode-right-toolbar.collapsed .opencode-selected-nodes-header,.opencode-right-toolbar.collapsed .opencode-selected-nodes,.opencode-right-toolbar.collapsed .opencode-clear-all-btn{display:none}.opencode-selected-nodes-header{padding:12px 8px 8px;border-bottom:1px solid var(--oc-border-primary)}.opencode-selected-nodes-title{font-size:14px;font-weight:600;color:var(--oc-text-primary);margin-bottom:4px}.opencode-selected-nodes-desc{font-size:11px;color:var(--oc-text-placeholder);line-height:1.4}.opencode-selected-nodes{flex:1;display:flex;flex-direction:column;padding:8px;gap:6px;overflow-y:auto;overflow-x:hidden}.opencode-selected-nodes:empty:before{content:"\6682\65e0\9009\4e2d\5143\7d20";color:var(--oc-text-placeholder);font-size:12px;text-align:center;padding:20px 10px}.opencode-selected-node{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--oc-bg-main);border:1px solid var(--oc-border-primary);border-radius:6px;font-size:12px;transition:all .2s}.opencode-selected-node:hover{border-color:var(--oc-primary);box-shadow:var(--oc-shadow-primary)}.opencode-node-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.opencode-node-text{color:var(--oc-text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opencode-node-file{color:var(--oc-text-placeholder);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opencode-node-remove{width:18px;height:18px;border-radius:4px;border:none;background:transparent;color:var(--oc-text-placeholder);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s;flex-shrink:0}.opencode-node-remove:hover{background:var(--oc-danger);color:#fff}.opencode-clear-all-btn{width:calc(100% - 16px);margin:8px;padding:8px 12px;border-radius:6px;border:none;background:var(--oc-danger);color:#fff;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;transition:all .2s}.opencode-clear-all-btn:hover{background:var(--oc-danger-hover);transform:scale(1.02)}
|
|
7
6
|
.opencode-session-list{width:240px;background:var(--oc-bg-secondary);border-right:1px solid var(--oc-border-primary);display:flex;flex-direction:column;flex-shrink:0;transition:width .2s ease}.opencode-session-list.collapsed{width:0;overflow:hidden}.opencode-session-list.collapsed .opencode-session-list-header,.opencode-session-list.collapsed .opencode-session-list-content{display:none}.opencode-session-list-header{padding:16px;border-bottom:1px solid var(--oc-border-primary);display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:14px;color:var(--oc-text-primary)}.opencode-new-session-btn{width:28px;height:28px;border-radius:6px;border:none;background:var(--oc-primary);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.opencode-new-session-btn:hover{background:var(--oc-primary-hover);transform:scale(1.05)}.opencode-session-list-content{flex:1;overflow-y:auto;padding:8px;position:relative}.opencode-session-list-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--oc-overlay-bg);display:flex;align-items:center;justify-content:center;z-index:10;border-radius:8px}.opencode-loading-spinner.small{width:24px;height:24px;border-width:2px}.opencode-session-item{padding:12px;border-radius:8px;cursor:pointer;transition:transform .2s;margin-bottom:4px;color:var(--oc-text-primary)}.opencode-session-item:hover{background:var(--oc-bg-tertiary)}.opencode-session-item.active{background:var(--oc-primary);color:#fff;transition:none}.opencode-session-title{font-size:14px;font-weight:500;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opencode-session-meta{font-size:12px;opacity:.6}.opencode-session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.opencode-session-delete-btn{width:20px;height:20px;border-radius:4px;border:none;background:transparent;color:var(--oc-text-placeholder);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;opacity:0;flex-shrink:0}.opencode-session-item:hover .opencode-session-delete-btn{opacity:1}.opencode-session-delete-btn:hover{background:var(--oc-danger);color:#fff}.opencode-session-item.active .opencode-session-delete-btn{color:rgba(255,255,255,.7)}.opencode-session-item.active .opencode-session-delete-btn:hover{background:rgba(255,255,255,.2);color:#fff}.opencode-session-header-skeleton{padding:16px;border-bottom:1px solid var(--oc-border-primary);display:none;justify-content:space-between;align-items:center}.opencode-session-header-skeleton.visible{display:flex}.opencode-skeleton-header-title{height:18px;width:80px;background:var(--oc-skeleton-gradient);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}.opencode-skeleton-header-btn{width:28px;height:28px;background:var(--oc-skeleton-gradient);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:6px}.opencode-session-skeleton{flex:1;overflow-y:auto;padding:8px;display:none}.opencode-session-skeleton.visible{display:block}.opencode-skeleton-item{padding:12px;border-radius:8px;margin-bottom:4px;background:var(--oc-skeleton-bg)}.opencode-skeleton-title{height:16px;background:var(--oc-skeleton-gradient);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px;margin-bottom:8px;width:70%}.opencode-skeleton-meta{height:12px;background:var(--oc-skeleton-gradient);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:4px;width:50%}.opencode-session-empty{padding:32px 16px;text-align:center;color:var(--oc-text-placeholder);font-size:13px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}
|
|
8
|
-
.opencode-button{width:44px;height:44px;border-radius:50%;background:var(--oc-trigger-bg);border:none;cursor:pointer;box-shadow:var(--oc-trigger-shadow);transition:all .3s ease;display:flex;align-items:center;justify-content:center;color:#fff;padding:0;position:relative}.opencode-button:before{content:"";position:absolute;top:-8px;left:-8px;right:-8px;bottom:-8px;border-radius:50%}.opencode-button:hover{transform:scale(1.1);box-shadow:var(--oc-trigger-shadow-hover);background:var(--oc-trigger-bg-hover)}.opencode-button.
|
|
7
|
+
.opencode-button{width:44px;height:44px;border-radius:50%;background:var(--oc-trigger-bg);border:none;cursor:pointer;box-shadow:var(--oc-trigger-shadow);transition:all .3s ease;display:flex;align-items:center;justify-content:center;color:#fff;padding:0;position:relative;overflow:visible}.opencode-button svg{transform:rotate(180deg);transition:transform .3s ease}.opencode-button:before{content:"";position:absolute;top:-8px;left:-8px;right:-8px;bottom:-8px;border-radius:50%}.opencode-button:hover{transform:scale(1.1);box-shadow:var(--oc-trigger-shadow-hover);background:var(--oc-trigger-bg-hover)}.opencode-button.thinking{background:linear-gradient(135deg,#667eea,#764ba2,#667eea);background-size:200% 200%;animation:thinking-gradient 2s ease infinite,thinking-pulse 2s ease-in-out infinite;box-shadow:0 0 20px rgba(102,126,234,.5),0 0 40px rgba(118,75,162,.3)}.opencode-button.thinking svg{animation:none}.opencode-button.thinking:before{content:"";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle,rgba(102,126,234,.7) 0%,rgba(118,75,162,.5) 50%,transparent 70%);transform:translate(-50%,-50%);animation:ripple-wave 2s ease-out infinite;pointer-events:none}.opencode-button.thinking:after{content:"";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle,rgba(118,75,162,.6) 0%,rgba(102,126,234,.4) 50%,transparent 70%);transform:translate(-50%,-50%);animation:ripple-wave 2s ease-out infinite;animation-delay:1s;pointer-events:none}@keyframes thinking-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes ripple-wave{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}@keyframes thinking-pulse{0%,to{transform:scale(1)}50%{transform:scale(.9)}}.opencode-button.loading{animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}
|
|
9
8
|
/*$vite$:1*/
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import OpenCodeWidget from './open-code-widget';
|
|
2
2
|
import type { App } from 'vue';
|
|
3
|
-
declare const version = "1.0.
|
|
3
|
+
declare const version = "1.0.17";
|
|
4
4
|
declare function install(app: App<any>, options?: any): void;
|
|
5
5
|
export { install, version, OpenCodeWidget };
|
|
6
6
|
export default install;
|
package/lib/index.js
CHANGED
|
@@ -34,7 +34,7 @@ __export(lib_exports, {
|
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(lib_exports);
|
|
36
36
|
var import_open_code_widget = __toESM(require("./open-code-widget"));
|
|
37
|
-
const version = "1.0.
|
|
37
|
+
const version = "1.0.17";
|
|
38
38
|
function install(app, options) {
|
|
39
39
|
const components = [
|
|
40
40
|
import_open_code_widget.default
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
declare function sendMessageToIframe(type: string, data?: Record<string, unknown>): void;
|
|
1
2
|
declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {};
|
|
2
3
|
type __VLS_Slots = {} & {
|
|
3
4
|
'empty-state'?: (props: typeof __VLS_1) => any;
|
|
@@ -8,7 +9,9 @@ type __VLS_Slots = {} & {
|
|
|
8
9
|
} & {
|
|
9
10
|
content?: (props: typeof __VLS_7) => any;
|
|
10
11
|
};
|
|
11
|
-
declare const __VLS_component: import("vue").DefineComponent<{}, {
|
|
12
|
+
declare const __VLS_component: import("vue").DefineComponent<{}, {
|
|
13
|
+
sendMessageToIframe: typeof sendMessageToIframe;
|
|
14
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
12
15
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
13
16
|
export default _default;
|
|
14
17
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -42,7 +42,6 @@ var import_vue3 = require("vue");
|
|
|
42
42
|
const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
43
43
|
__name: "Frame",
|
|
44
44
|
setup(__props, { expose: __expose }) {
|
|
45
|
-
__expose();
|
|
46
45
|
const iframeRef = (0, import_vue2.ref)(null);
|
|
47
46
|
const {
|
|
48
47
|
frameLoading,
|
|
@@ -52,41 +51,24 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
|
|
|
52
51
|
emptyStateText,
|
|
53
52
|
emptyStateActionText,
|
|
54
53
|
handleEmptyAction,
|
|
55
|
-
handleFrameLoaded
|
|
56
|
-
theme,
|
|
57
|
-
resolvedTheme
|
|
54
|
+
handleFrameLoaded
|
|
58
55
|
} = (0, import_context.useOpenCodeWidgetContext)();
|
|
59
|
-
const iframeReady = (0, import_vue2.ref)(false);
|
|
60
56
|
function sendMessageToIframe(type, data) {
|
|
61
57
|
var _a;
|
|
62
58
|
if (!((_a = iframeRef.value) == null ? void 0 : _a.contentWindow)) return;
|
|
63
59
|
iframeRef.value.contentWindow.postMessage(__spreadValues({ type }, data), "*");
|
|
64
60
|
}
|
|
65
|
-
function syncIframeTheme() {
|
|
66
|
-
sendMessageToIframe("OPENCODE_SET_THEME", { theme: resolvedTheme.value });
|
|
67
|
-
}
|
|
68
|
-
function handleIframeMessage(event) {
|
|
69
|
-
var _a;
|
|
70
|
-
if (((_a = event.data) == null ? void 0 : _a.type) === "OPENCODE_READY") {
|
|
71
|
-
syncIframeTheme();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
(0, import_vue2.watch)([theme, resolvedTheme], () => {
|
|
75
|
-
syncIframeTheme();
|
|
76
|
-
});
|
|
77
61
|
(0, import_vue2.onMounted)(() => {
|
|
78
62
|
if (iframeRef.value) {
|
|
79
63
|
iframeRef.value.addEventListener("load", () => {
|
|
80
|
-
iframeReady.value = true;
|
|
81
64
|
handleFrameLoaded();
|
|
82
65
|
});
|
|
83
66
|
}
|
|
84
|
-
window.addEventListener("message", handleIframeMessage);
|
|
85
67
|
});
|
|
86
|
-
(
|
|
87
|
-
|
|
68
|
+
__expose({
|
|
69
|
+
sendMessageToIframe
|
|
88
70
|
});
|
|
89
|
-
const __returned__ = { iframeRef, frameLoading, showEmptyState, showError, iframeSrc, emptyStateText, emptyStateActionText, handleEmptyAction, handleFrameLoaded,
|
|
71
|
+
const __returned__ = { iframeRef, frameLoading, showEmptyState, showError, iframeSrc, emptyStateText, emptyStateActionText, handleEmptyAction, handleFrameLoaded, sendMessageToIframe };
|
|
90
72
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
91
73
|
return __returned__;
|
|
92
74
|
}
|