@vite-plugin-opencode-assistant/components 1.0.36 → 1.0.38
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/composables/use-persist-state.d.ts +2 -0
- package/es/open-code-widget/composables/use-persist-state.js +24 -9
- package/es/open-code-widget/composables/use-split.d.ts +24 -0
- package/es/open-code-widget/composables/use-split.js +90 -0
- package/es/open-code-widget/src/components/ChatPanel-sfc.css +1 -0
- package/es/open-code-widget/src/components/ChatPanel.vue.d.ts +180 -0
- package/es/open-code-widget/src/components/ChatPanel.vue.js +288 -0
- package/es/open-code-widget/src/components/Header.vue.js +13 -8
- package/es/open-code-widget/src/components/ResizeHandle-sfc.css +1 -0
- package/es/open-code-widget/src/components/ResizeHandle.vue.d.ts +19 -0
- package/es/open-code-widget/src/components/ResizeHandle.vue.js +91 -0
- package/es/open-code-widget/src/components/SplitTrigger-sfc.css +1 -0
- package/es/open-code-widget/src/components/SplitTrigger.vue.d.ts +17 -0
- package/es/open-code-widget/src/components/SplitTrigger.vue.js +130 -0
- 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 +16 -53
- package/es/open-code-widget/src/index.vue.js +150 -140
- package/es/open-code-widget/src/types.d.ts +1 -1
- package/lib/@vite-plugin-opencode-assistant/components.cjs.js +806 -248
- package/lib/@vite-plugin-opencode-assistant/components.es.js +802 -244
- package/lib/components.css +5 -3
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/open-code-widget/composables/use-persist-state.d.ts +2 -0
- package/lib/open-code-widget/composables/use-persist-state.js +24 -9
- package/lib/open-code-widget/composables/use-split.d.ts +24 -0
- package/lib/open-code-widget/composables/use-split.js +109 -0
- package/lib/open-code-widget/src/components/ChatPanel-sfc.css +1 -0
- package/lib/open-code-widget/src/components/ChatPanel.vue.d.ts +180 -0
- package/lib/open-code-widget/src/components/ChatPanel.vue.js +315 -0
- package/lib/open-code-widget/src/components/Header.vue.js +12 -7
- package/lib/open-code-widget/src/components/ResizeHandle-sfc.css +1 -0
- package/lib/open-code-widget/src/components/ResizeHandle.vue.d.ts +19 -0
- package/lib/open-code-widget/src/components/ResizeHandle.vue.js +108 -0
- package/lib/open-code-widget/src/components/SplitTrigger-sfc.css +1 -0
- package/lib/open-code-widget/src/components/SplitTrigger.vue.d.ts +17 -0
- package/lib/open-code-widget/src/components/SplitTrigger.vue.js +147 -0
- 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 +16 -53
- package/lib/open-code-widget/src/index.vue.js +149 -139
- package/lib/open-code-widget/src/types.d.ts +1 -1
- package/lib/web-types.json +1 -1
- package/package.json +2 -2
|
@@ -16,6 +16,7 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent({
|
|
|
16
16
|
resolvedTheme,
|
|
17
17
|
minimized,
|
|
18
18
|
promptDockVisible,
|
|
19
|
+
mode,
|
|
19
20
|
handleToggleSessionList,
|
|
20
21
|
handleToggleSelectMode,
|
|
21
22
|
handleToggleTheme,
|
|
@@ -23,6 +24,7 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent({
|
|
|
23
24
|
handleToggleMinimize,
|
|
24
25
|
handleTogglePromptDock
|
|
25
26
|
} = useOpenCodeWidgetContext();
|
|
27
|
+
const isSplitMode = computed(() => mode.value === "split");
|
|
26
28
|
const themeIconTitle = computed(() => {
|
|
27
29
|
const themeLabels = {
|
|
28
30
|
auto: "\u81EA\u52A8",
|
|
@@ -39,12 +41,12 @@ const __vue_sfc__ = /* @__PURE__ */ _defineComponent({
|
|
|
39
41
|
};
|
|
40
42
|
return `\u5207\u6362\u4E3B\u9898 - \u5F53\u524D: ${themeLabels[theme.value]}`;
|
|
41
43
|
});
|
|
42
|
-
const __returned__ = { title, sessionListTitle, sessionListCollapsed, selectMode, selectEnabled, theme, resolvedTheme, minimized, promptDockVisible, handleToggleSessionList, handleToggleSelectMode, handleToggleTheme, handleClose, handleToggleMinimize, handleTogglePromptDock, themeIconTitle, themeIconLabel };
|
|
44
|
+
const __returned__ = { title, sessionListTitle, sessionListCollapsed, selectMode, selectEnabled, theme, resolvedTheme, minimized, promptDockVisible, mode, handleToggleSessionList, handleToggleSelectMode, handleToggleTheme, handleClose, handleToggleMinimize, handleTogglePromptDock, isSplitMode, themeIconTitle, themeIconLabel };
|
|
43
45
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
44
46
|
return __returned__;
|
|
45
47
|
}
|
|
46
48
|
});
|
|
47
|
-
import { renderSlot as _renderSlot, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, createStaticVNode as _createStaticVNode } from "vue";
|
|
49
|
+
import { renderSlot as _renderSlot, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createStaticVNode as _createStaticVNode } from "vue";
|
|
48
50
|
const _hoisted_1 = { class: "opencode-chat-header" };
|
|
49
51
|
const _hoisted_2 = { class: "opencode-chat-header-left" };
|
|
50
52
|
const _hoisted_3 = ["title", "aria-label", "aria-expanded"];
|
|
@@ -203,7 +205,8 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
203
205
|
/* TEXT */
|
|
204
206
|
),
|
|
205
207
|
_createElementVNode("div", _hoisted_10, [
|
|
206
|
-
|
|
208
|
+
!$setup.isSplitMode ? (_openBlock(), _createElementBlock("button", {
|
|
209
|
+
key: 0,
|
|
207
210
|
class: "opencode-header-btn prompt-dock",
|
|
208
211
|
type: "button",
|
|
209
212
|
title: $setup.promptDockVisible ? "\u9690\u85CF\u5BF9\u8BDD\u6846" : "\u663E\u793A\u5BF9\u8BDD\u6846",
|
|
@@ -230,8 +233,9 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
230
233
|
/* CACHED */
|
|
231
234
|
))
|
|
232
235
|
])
|
|
233
|
-
], 8, _hoisted_11),
|
|
234
|
-
|
|
236
|
+
], 8, _hoisted_11)) : _createCommentVNode("v-if", true),
|
|
237
|
+
!$setup.isSplitMode ? (_openBlock(), _createElementBlock("button", {
|
|
238
|
+
key: 1,
|
|
235
239
|
class: "opencode-header-btn minimize",
|
|
236
240
|
type: "button",
|
|
237
241
|
title: $setup.minimized ? "\u5C55\u5F00" : "\u6700\u5C0F\u5316",
|
|
@@ -258,8 +262,9 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
258
262
|
)
|
|
259
263
|
])]))
|
|
260
264
|
])
|
|
261
|
-
], 8, _hoisted_12),
|
|
262
|
-
|
|
265
|
+
], 8, _hoisted_12)) : _createCommentVNode("v-if", true),
|
|
266
|
+
!$setup.isSplitMode ? (_openBlock(), _createElementBlock("button", {
|
|
267
|
+
key: 2,
|
|
263
268
|
class: "opencode-header-btn close",
|
|
264
269
|
type: "button",
|
|
265
270
|
title: "\u5173\u95ED",
|
|
@@ -285,7 +290,7 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
285
290
|
/* CACHED */
|
|
286
291
|
))
|
|
287
292
|
])
|
|
288
|
-
])
|
|
293
|
+
])) : _createCommentVNode("v-if", true)
|
|
289
294
|
])
|
|
290
295
|
]);
|
|
291
296
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.opencode-resize-handle{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:col-resize;background:transparent;z-index:10;transition:background .2s ease}.opencode-resize-handle:hover,.opencode-resize-handle.resizing{background:var(--oc-primary-bg)}.opencode-resize-handle:after{content:"";position:absolute;left:2px;top:50%;transform:translateY(-50%);width:2px;height:40px;background:var(--oc-border-secondary);border-radius:1px;opacity:0;transition:opacity .2s ease}.opencode-resize-handle:hover:after,.opencode-resize-handle.resizing:after{opacity:1}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
width: number;
|
|
3
|
+
minWidth?: number;
|
|
4
|
+
maxWidth?: number;
|
|
5
|
+
};
|
|
6
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
7
|
+
resize: (width: number) => any;
|
|
8
|
+
"resize-start": () => any;
|
|
9
|
+
"resize-end": () => any;
|
|
10
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
+
onResize?: ((width: number) => any) | undefined;
|
|
12
|
+
"onResize-start"?: (() => any) | undefined;
|
|
13
|
+
"onResize-end"?: (() => any) | undefined;
|
|
14
|
+
}>, {
|
|
15
|
+
width: number;
|
|
16
|
+
minWidth: number;
|
|
17
|
+
maxWidth: number;
|
|
18
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
export default _default;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
import "./ResizeHandle-sfc.css";
|
|
21
|
+
import { defineComponent as _defineComponent } from "vue";
|
|
22
|
+
import { ref, onUnmounted } from "vue";
|
|
23
|
+
const __vue_sfc__ = /* @__PURE__ */ _defineComponent(__spreadProps(__spreadValues({}, {
|
|
24
|
+
name: "ResizeHandle"
|
|
25
|
+
}), {
|
|
26
|
+
__name: "ResizeHandle",
|
|
27
|
+
props: {
|
|
28
|
+
width: { type: Number, required: true, default: 500 },
|
|
29
|
+
minWidth: { type: Number, required: false, default: 400 },
|
|
30
|
+
maxWidth: { type: Number, required: false, default: 800 }
|
|
31
|
+
},
|
|
32
|
+
emits: ["resize", "resize-start", "resize-end"],
|
|
33
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
34
|
+
__expose();
|
|
35
|
+
const props = __props;
|
|
36
|
+
const emit = __emit;
|
|
37
|
+
const isResizing = ref(false);
|
|
38
|
+
const startX = ref(0);
|
|
39
|
+
const startWidth = ref(0);
|
|
40
|
+
const handleMouseDown = (e) => {
|
|
41
|
+
e.preventDefault();
|
|
42
|
+
isResizing.value = true;
|
|
43
|
+
startX.value = e.clientX;
|
|
44
|
+
startWidth.value = props.width;
|
|
45
|
+
emit("resize-start");
|
|
46
|
+
document.addEventListener("mousemove", handleMouseMove);
|
|
47
|
+
document.addEventListener("mouseup", handleMouseUp);
|
|
48
|
+
};
|
|
49
|
+
const handleMouseMove = (e) => {
|
|
50
|
+
if (!isResizing.value) return;
|
|
51
|
+
const deltaX = startX.value - e.clientX;
|
|
52
|
+
const newWidth = Math.max(props.minWidth, Math.min(props.maxWidth, startWidth.value + deltaX));
|
|
53
|
+
emit("resize", newWidth);
|
|
54
|
+
};
|
|
55
|
+
const handleMouseUp = () => {
|
|
56
|
+
isResizing.value = false;
|
|
57
|
+
emit("resize-end");
|
|
58
|
+
document.removeEventListener("mousemove", handleMouseMove);
|
|
59
|
+
document.removeEventListener("mouseup", handleMouseUp);
|
|
60
|
+
};
|
|
61
|
+
const handleDoubleClick = () => {
|
|
62
|
+
emit("resize", 500);
|
|
63
|
+
};
|
|
64
|
+
onUnmounted(() => {
|
|
65
|
+
document.removeEventListener("mousemove", handleMouseMove);
|
|
66
|
+
document.removeEventListener("mouseup", handleMouseUp);
|
|
67
|
+
});
|
|
68
|
+
const __returned__ = { props, emit, isResizing, startX, startWidth, handleMouseDown, handleMouseMove, handleMouseUp, handleDoubleClick };
|
|
69
|
+
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
70
|
+
return __returned__;
|
|
71
|
+
}
|
|
72
|
+
}));
|
|
73
|
+
import { normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
|
|
74
|
+
function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
75
|
+
return _openBlock(), _createElementBlock(
|
|
76
|
+
"div",
|
|
77
|
+
{
|
|
78
|
+
class: _normalizeClass(["opencode-resize-handle", { resizing: $setup.isResizing }]),
|
|
79
|
+
onMousedown: $setup.handleMouseDown,
|
|
80
|
+
onDblclick: $setup.handleDoubleClick
|
|
81
|
+
},
|
|
82
|
+
null,
|
|
83
|
+
34
|
|
84
|
+
/* CLASS, NEED_HYDRATION */
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
__vue_sfc__.render = __vue_render__;
|
|
88
|
+
var ResizeHandle_vue_default = __vue_sfc__;
|
|
89
|
+
export {
|
|
90
|
+
ResizeHandle_vue_default as default
|
|
91
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.opencode-split-trigger{position:fixed;right:0;top:50%;transform:translateY(-50%);width:20px;height:48px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px 0 0 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:-2px 0 8px rgba(59,130,246,.25);transition:right .3s ease,width .25s cubic-bezier(.4,0,.2,1),background .25s ease,box-shadow .25s ease;z-index:99998}.opencode-split-trigger:hover{width:24px;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:-3px 0 12px rgba(59,130,246,.35)}.opencode-split-trigger.open{width:20px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px rgba(59,130,246,.25)}.opencode-split-trigger.open:hover{width:24px;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:-3px 0 12px rgba(59,130,246,.35)}.opencode-split-trigger-icon{display:flex;align-items:center;justify-content:center;transition:transform .25s ease}.opencode-split-trigger:hover .opencode-split-trigger-icon{transform:scale(1.1)}.opencode-split-thinking-indicator{position:absolute;top:6px;right:6px;width:5px;height:5px;background:var(--oc-success);border-radius:50%;animation:opencode-thinking-pulse 1.5s ease-in-out infinite;box-shadow:0 0 4px rgba(16,185,129,.5)}@keyframes opencode-thinking-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
open?: boolean;
|
|
3
|
+
thinking?: boolean;
|
|
4
|
+
resolvedTheme?: "light" | "dark";
|
|
5
|
+
panelWidth?: number;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
8
|
+
toggle: () => any;
|
|
9
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
10
|
+
onToggle?: (() => any) | undefined;
|
|
11
|
+
}>, {
|
|
12
|
+
resolvedTheme: "light" | "dark";
|
|
13
|
+
thinking: boolean;
|
|
14
|
+
open: boolean;
|
|
15
|
+
panelWidth: number;
|
|
16
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
import "./SplitTrigger-sfc.css";
|
|
21
|
+
import { defineComponent as _defineComponent } from "vue";
|
|
22
|
+
import { computed } from "vue";
|
|
23
|
+
const __vue_sfc__ = /* @__PURE__ */ _defineComponent(__spreadProps(__spreadValues({}, {
|
|
24
|
+
name: "SplitTrigger"
|
|
25
|
+
}), {
|
|
26
|
+
__name: "SplitTrigger",
|
|
27
|
+
props: {
|
|
28
|
+
open: { type: Boolean, required: false, default: false },
|
|
29
|
+
thinking: { type: Boolean, required: false, default: false },
|
|
30
|
+
resolvedTheme: { type: String, required: false, default: "light" },
|
|
31
|
+
panelWidth: { type: Number, required: false, default: 500 }
|
|
32
|
+
},
|
|
33
|
+
emits: ["toggle"],
|
|
34
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
35
|
+
__expose();
|
|
36
|
+
const props = __props;
|
|
37
|
+
const emit = __emit;
|
|
38
|
+
const buttonClasses = computed(() => [
|
|
39
|
+
"opencode-split-trigger",
|
|
40
|
+
{
|
|
41
|
+
open: props.open,
|
|
42
|
+
thinking: props.thinking,
|
|
43
|
+
"opencode-theme-dark": props.resolvedTheme === "dark"
|
|
44
|
+
}
|
|
45
|
+
]);
|
|
46
|
+
const buttonStyle = computed(() => {
|
|
47
|
+
if (props.open) {
|
|
48
|
+
return {
|
|
49
|
+
right: `${props.panelWidth}px`
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return {};
|
|
53
|
+
});
|
|
54
|
+
const handleClick = () => {
|
|
55
|
+
emit("toggle");
|
|
56
|
+
};
|
|
57
|
+
const __returned__ = { props, emit, buttonClasses, buttonStyle, handleClick };
|
|
58
|
+
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
59
|
+
return __returned__;
|
|
60
|
+
}
|
|
61
|
+
}));
|
|
62
|
+
import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
|
|
63
|
+
const _hoisted_1 = ["aria-expanded"];
|
|
64
|
+
const _hoisted_2 = { class: "opencode-split-trigger-icon" };
|
|
65
|
+
const _hoisted_3 = {
|
|
66
|
+
key: 0,
|
|
67
|
+
viewBox: "0 0 24 24",
|
|
68
|
+
width: "16",
|
|
69
|
+
height: "16",
|
|
70
|
+
fill: "none",
|
|
71
|
+
stroke: "currentColor",
|
|
72
|
+
"stroke-width": "2"
|
|
73
|
+
};
|
|
74
|
+
const _hoisted_4 = {
|
|
75
|
+
key: 1,
|
|
76
|
+
viewBox: "0 0 24 24",
|
|
77
|
+
width: "16",
|
|
78
|
+
height: "16",
|
|
79
|
+
fill: "none",
|
|
80
|
+
stroke: "currentColor",
|
|
81
|
+
"stroke-width": "2"
|
|
82
|
+
};
|
|
83
|
+
const _hoisted_5 = {
|
|
84
|
+
key: 0,
|
|
85
|
+
class: "opencode-split-thinking-indicator"
|
|
86
|
+
};
|
|
87
|
+
function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
88
|
+
return _openBlock(), _createElementBlock("button", {
|
|
89
|
+
class: _normalizeClass($setup.buttonClasses),
|
|
90
|
+
style: _normalizeStyle($setup.buttonStyle),
|
|
91
|
+
type: "button",
|
|
92
|
+
"aria-expanded": $props.open,
|
|
93
|
+
"aria-label": "\u6253\u5F00 AI \u52A9\u624B",
|
|
94
|
+
onClick: $setup.handleClick
|
|
95
|
+
}, [
|
|
96
|
+
_createElementVNode("span", _hoisted_2, [
|
|
97
|
+
$props.open ? (_openBlock(), _createElementBlock("svg", _hoisted_3, [..._cache[0] || (_cache[0] = [
|
|
98
|
+
_createElementVNode(
|
|
99
|
+
"path",
|
|
100
|
+
{
|
|
101
|
+
d: "M9 18l6-6-6-6",
|
|
102
|
+
"stroke-linecap": "round",
|
|
103
|
+
"stroke-linejoin": "round"
|
|
104
|
+
},
|
|
105
|
+
null,
|
|
106
|
+
-1
|
|
107
|
+
/* CACHED */
|
|
108
|
+
)
|
|
109
|
+
])])) : (_openBlock(), _createElementBlock("svg", _hoisted_4, [..._cache[1] || (_cache[1] = [
|
|
110
|
+
_createElementVNode(
|
|
111
|
+
"path",
|
|
112
|
+
{
|
|
113
|
+
d: "M15 18l-6-6 6-6",
|
|
114
|
+
"stroke-linecap": "round",
|
|
115
|
+
"stroke-linejoin": "round"
|
|
116
|
+
},
|
|
117
|
+
null,
|
|
118
|
+
-1
|
|
119
|
+
/* CACHED */
|
|
120
|
+
)
|
|
121
|
+
])]))
|
|
122
|
+
]),
|
|
123
|
+
$props.thinking ? (_openBlock(), _createElementBlock("span", _hoisted_5)) : _createCommentVNode("v-if", true)
|
|
124
|
+
], 14, _hoisted_1);
|
|
125
|
+
}
|
|
126
|
+
__vue_sfc__.render = __vue_render__;
|
|
127
|
+
var SplitTrigger_vue_default = __vue_sfc__;
|
|
128
|
+
export {
|
|
129
|
+
SplitTrigger_vue_default as default
|
|
130
|
+
};
|
|
@@ -24,6 +24,7 @@ export interface OpenCodeWidgetContext {
|
|
|
24
24
|
minimized: Ref<boolean>;
|
|
25
25
|
promptDockVisible: Ref<boolean>;
|
|
26
26
|
bubbleOffset: Ref<FloatingBubbleOffset | undefined>;
|
|
27
|
+
mode: Ref<"bubble" | "split">;
|
|
27
28
|
sessionStates: Ref<Record<string, OpencodeSessionThinkingState>>;
|
|
28
29
|
iframeSource: Ref<string>;
|
|
29
30
|
buttonActive: Ref<boolean>;
|
|
@@ -1 +1 @@
|
|
|
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-chat{position:fixed;bottom:20px;width:700px;height:86vh;max-height:calc(100vh - 40px);background:var(--oc-bg-main);border-radius:16px;box-shadow:var(--oc-shadow-lg);overflow:hidden;opacity:0;visibility:hidden;transform:translate3d(var(---chatAnimationOrigin\.x),var(---chatAnimationOrigin\.y),0) scale(.95);transition:all .3s ease;display:flex;flex-direction:column;z-index:99999}.opencode-chat.open{opacity:1;visibility:visible;transform:translateZ(0) scale(1)}.opencode-chat.no-transition,.opencode-chat.no-transition.open{transition:none!important}.opencode-chat.minimized{width:300px;height:300px}.opencode-chat.minimized .opencode-iframe-container{margin-top:-146px}.opencode-chat-content{display:flex;flex:1;overflow:hidden}.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;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;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)}}
|
|
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-chat{position:fixed;bottom:20px;width:700px;height:86vh;max-height:calc(100vh - 40px);background:var(--oc-bg-main);border-radius:16px;box-shadow:var(--oc-shadow-lg);overflow:hidden;opacity:0;visibility:hidden;transform:translate3d(var(---chatAnimationOrigin\.x),var(---chatAnimationOrigin\.y),0) scale(.95);transition:all .3s ease;display:flex;flex-direction:column;z-index:99999}.opencode-chat.open{opacity:1;visibility:visible;transform:translateZ(0) scale(1)}.opencode-chat.no-transition,.opencode-chat.no-transition.open{transition:none!important}.opencode-chat.minimized{width:300px;height:300px}.opencode-chat.minimized .opencode-iframe-container{margin-top:-146px}.opencode-chat-content{display:flex;flex:1;overflow:hidden}.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;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;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)}}body.has-opencode-split{padding-right:var(--opencode-split-width, 500px);transition:padding-right .3s ease}body.has-opencode-split *:not(.opencode-chat){max-width:calc(100vw - var(--opencode-split-width, 500px))!important}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import type { OpenCodeWidgetProps } from "./types";
|
|
2
|
-
declare var __VLS_11: {},
|
|
2
|
+
declare var __VLS_11: {}, __VLS_25: {}, __VLS_27: {}, __VLS_29: {}, __VLS_31: {}, __VLS_33: {}, __VLS_35: {}, __VLS_37: {}, __VLS_39: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
4
|
'button-icon'?: (props: typeof __VLS_11) => any;
|
|
5
5
|
} & {
|
|
6
|
-
'session-toggle-icon'?: (props: typeof
|
|
6
|
+
'session-toggle-icon'?: (props: typeof __VLS_25) => any;
|
|
7
7
|
} & {
|
|
8
|
-
'select-icon'?: (props: typeof
|
|
8
|
+
'select-icon'?: (props: typeof __VLS_27) => any;
|
|
9
9
|
} & {
|
|
10
|
-
'close-icon'?: (props: typeof
|
|
10
|
+
'close-icon'?: (props: typeof __VLS_29) => any;
|
|
11
11
|
} & {
|
|
12
|
-
'sessions-empty'?: (props: typeof
|
|
12
|
+
'sessions-empty'?: (props: typeof __VLS_31) => any;
|
|
13
13
|
} & {
|
|
14
|
-
'empty-state'?: (props: typeof
|
|
14
|
+
'empty-state'?: (props: typeof __VLS_33) => any;
|
|
15
15
|
} & {
|
|
16
|
-
loading?: (props: typeof
|
|
16
|
+
loading?: (props: typeof __VLS_35) => any;
|
|
17
17
|
} & {
|
|
18
|
-
error?: (props: typeof
|
|
18
|
+
error?: (props: typeof __VLS_37) => any;
|
|
19
19
|
} & {
|
|
20
|
-
content?: (props: typeof
|
|
20
|
+
content?: (props: typeof __VLS_39) => any;
|
|
21
21
|
};
|
|
22
22
|
declare const __VLS_component: import("vue").DefineComponent<OpenCodeWidgetProps, {
|
|
23
23
|
showNotification: (message: string, options?: {
|
|
@@ -27,49 +27,9 @@ declare const __VLS_component: import("vue").DefineComponent<OpenCodeWidgetProps
|
|
|
27
27
|
showConfirmDialog: (message: string) => Promise<boolean>;
|
|
28
28
|
sendMessageToIframe: (type: string, data?: Record<string, unknown>) => void;
|
|
29
29
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
30
|
-
|
|
31
|
-
toggle: (value: boolean) => any;
|
|
32
|
-
"create-session": () => any;
|
|
33
|
-
"update:open": (value: boolean) => any;
|
|
34
|
-
"delete-session": (session: import("@vite-plugin-opencode-assistant/shared").OpenCodeWidgetSession) => any;
|
|
35
|
-
"update:selectMode": (value: boolean) => any;
|
|
36
|
-
"update:sessionListCollapsed": (value: boolean) => any;
|
|
37
|
-
"update:currentSessionId": (value: string | null) => any;
|
|
38
|
-
"update:selectedElements": (value: import("@vite-plugin-opencode-assistant/shared").OpenCodeSelectedElement[]) => any;
|
|
39
|
-
"update:theme": (value: import("@vite-plugin-opencode-assistant/shared").OpenCodeWidgetTheme) => any;
|
|
40
|
-
"update:thinking": (value: boolean) => any;
|
|
41
|
-
"toggle-session-list": (value: boolean) => any;
|
|
42
|
-
"toggle-select-mode": (value: boolean) => any;
|
|
43
|
-
"toggle-theme": (value: import("@vite-plugin-opencode-assistant/shared").OpenCodeWidgetTheme) => any;
|
|
44
|
-
"select-session": (session: import("@vite-plugin-opencode-assistant/shared").OpenCodeWidgetSession) => any;
|
|
45
|
-
"click-selected-node": (element: import("@vite-plugin-opencode-assistant/shared").OpenCodeSelectedElement) => any;
|
|
46
|
-
"remove-selected-node": (payload: import("@vite-plugin-opencode-assistant/shared").OpenCodeRemoveSelectedPayload) => any;
|
|
47
|
-
"clear-selected-nodes": () => any;
|
|
48
|
-
"empty-action": () => any;
|
|
49
|
-
"frame-loaded": () => any;
|
|
50
|
-
"thinking-change": (value: boolean) => any;
|
|
30
|
+
[x: string]: any;
|
|
51
31
|
}, string, import("vue").PublicProps, Readonly<OpenCodeWidgetProps> & Readonly<{
|
|
52
|
-
|
|
53
|
-
onToggle?: ((value: boolean) => any) | undefined;
|
|
54
|
-
"onCreate-session"?: (() => any) | undefined;
|
|
55
|
-
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
56
|
-
"onDelete-session"?: ((session: import("@vite-plugin-opencode-assistant/shared").OpenCodeWidgetSession) => any) | undefined;
|
|
57
|
-
"onUpdate:selectMode"?: ((value: boolean) => any) | undefined;
|
|
58
|
-
"onUpdate:sessionListCollapsed"?: ((value: boolean) => any) | undefined;
|
|
59
|
-
"onUpdate:currentSessionId"?: ((value: string | null) => any) | undefined;
|
|
60
|
-
"onUpdate:selectedElements"?: ((value: import("@vite-plugin-opencode-assistant/shared").OpenCodeSelectedElement[]) => any) | undefined;
|
|
61
|
-
"onUpdate:theme"?: ((value: import("@vite-plugin-opencode-assistant/shared").OpenCodeWidgetTheme) => any) | undefined;
|
|
62
|
-
"onUpdate:thinking"?: ((value: boolean) => any) | undefined;
|
|
63
|
-
"onToggle-session-list"?: ((value: boolean) => any) | undefined;
|
|
64
|
-
"onToggle-select-mode"?: ((value: boolean) => any) | undefined;
|
|
65
|
-
"onToggle-theme"?: ((value: import("@vite-plugin-opencode-assistant/shared").OpenCodeWidgetTheme) => any) | undefined;
|
|
66
|
-
"onSelect-session"?: ((session: import("@vite-plugin-opencode-assistant/shared").OpenCodeWidgetSession) => any) | undefined;
|
|
67
|
-
"onClick-selected-node"?: ((element: import("@vite-plugin-opencode-assistant/shared").OpenCodeSelectedElement) => any) | undefined;
|
|
68
|
-
"onRemove-selected-node"?: ((payload: import("@vite-plugin-opencode-assistant/shared").OpenCodeRemoveSelectedPayload) => any) | undefined;
|
|
69
|
-
"onClear-selected-nodes"?: (() => any) | undefined;
|
|
70
|
-
"onEmpty-action"?: (() => any) | undefined;
|
|
71
|
-
"onFrame-loaded"?: (() => any) | undefined;
|
|
72
|
-
"onThinking-change"?: ((value: boolean) => any) | undefined;
|
|
32
|
+
[x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
|
|
73
33
|
}>, {
|
|
74
34
|
frameLoading: boolean;
|
|
75
35
|
showEmptyState: boolean;
|
|
@@ -82,16 +42,19 @@ declare const __VLS_component: import("vue").DefineComponent<OpenCodeWidgetProps
|
|
|
82
42
|
selectMode: boolean;
|
|
83
43
|
selectEnabled: boolean;
|
|
84
44
|
theme: import("@vite-plugin-opencode-assistant/shared").OpenCodeWidgetTheme;
|
|
85
|
-
selectShortcutLabel: string;
|
|
86
|
-
showClearAll: boolean;
|
|
87
45
|
showSessionListSkeleton: boolean;
|
|
88
46
|
sessionKey: string;
|
|
89
47
|
sessions: import("@vite-plugin-opencode-assistant/shared").OpenCodeWidgetSession[];
|
|
90
48
|
thinking: boolean;
|
|
49
|
+
showClearAll: boolean;
|
|
91
50
|
open: boolean;
|
|
51
|
+
selectShortcutLabel: string;
|
|
92
52
|
hotkeyLabel: string;
|
|
53
|
+
splitPanelWidth: number;
|
|
93
54
|
currentSessionId: string | null;
|
|
94
55
|
selectedElements: import("@vite-plugin-opencode-assistant/shared").OpenCodeSelectedElement[];
|
|
56
|
+
displayMode: import("@vite-plugin-opencode-assistant/shared").DisplayMode;
|
|
57
|
+
splitMode: import("@vite-plugin-opencode-assistant/shared").SplitModeOptions;
|
|
95
58
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
96
59
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
97
60
|
export default _default;
|