@vite-plugin-opencode-assistant/components 1.0.48 → 1.0.50
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 +5 -1
- package/es/open-code-widget/composables/use-persist-state.js +10 -2
- package/es/open-code-widget/composables/use-split.d.ts +5 -0
- package/es/open-code-widget/composables/use-split.js +46 -12
- package/es/open-code-widget/src/components/ChatPanel-sfc.css +1 -1
- package/es/open-code-widget/src/components/ChatPanel.vue.d.ts +2 -0
- package/es/open-code-widget/src/components/ChatPanel.vue.js +60 -11
- package/es/open-code-widget/src/components/Header.vue.d.ts +8 -4
- package/es/open-code-widget/src/components/Header.vue.js +313 -27
- package/es/open-code-widget/src/components/ResizeHandle-sfc.css +1 -1
- package/es/open-code-widget/src/components/ResizeHandle.vue.d.ts +2 -0
- package/es/open-code-widget/src/components/ResizeHandle.vue.js +9 -3
- package/es/open-code-widget/src/context.d.ts +5 -1
- package/es/open-code-widget/src/index-sfc.css +1 -1
- package/es/open-code-widget/src/index.vue.d.ts +1 -1
- package/es/open-code-widget/src/index.vue.js +48 -12
- package/lib/@vite-plugin-opencode-assistant/components.cjs.js +372 -70
- package/lib/@vite-plugin-opencode-assistant/components.es.js +372 -70
- package/lib/components.css +3 -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 +5 -1
- package/lib/open-code-widget/composables/use-persist-state.js +10 -2
- package/lib/open-code-widget/composables/use-split.d.ts +5 -0
- package/lib/open-code-widget/composables/use-split.js +46 -12
- package/lib/open-code-widget/src/components/ChatPanel-sfc.css +1 -1
- package/lib/open-code-widget/src/components/ChatPanel.vue.d.ts +2 -0
- package/lib/open-code-widget/src/components/ChatPanel.vue.js +60 -11
- package/lib/open-code-widget/src/components/Header.vue.d.ts +8 -4
- package/lib/open-code-widget/src/components/Header.vue.js +313 -27
- package/lib/open-code-widget/src/components/ResizeHandle-sfc.css +1 -1
- package/lib/open-code-widget/src/components/ResizeHandle.vue.d.ts +2 -0
- package/lib/open-code-widget/src/components/ResizeHandle.vue.js +9 -3
- package/lib/open-code-widget/src/context.d.ts +5 -1
- package/lib/open-code-widget/src/index-sfc.css +1 -1
- package/lib/open-code-widget/src/index.vue.d.ts +1 -1
- package/lib/open-code-widget/src/index.vue.js +48 -12
- package/lib/web-types.json +1 -1
- package/package.json +2 -2
|
@@ -95,6 +95,7 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
95
95
|
},
|
|
96
96
|
emits: ["update:open", "update:selectMode", "update:sessionListCollapsed", "update:currentSessionId", "update:selectedElements", "update:theme", "update:thinking", "update:splitPanelWidth", "toggle", "close", "toggle-session-list", "toggle-select-mode", "toggle-theme", "create-session", "select-session", "delete-session", "click-selected-node", "remove-selected-node", "clear-selected-nodes", "empty-action", "frame-loaded", "thinking-change", "split-panel-width-change"],
|
|
97
97
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
98
|
+
var _a, _b;
|
|
98
99
|
(0, import_vue.useCssVars)((_ctx) => ({
|
|
99
100
|
"-chatAnimationOrigin.x": chatAnimationOrigin.value.x,
|
|
100
101
|
"-chatAnimationOrigin.y": chatAnimationOrigin.value.y
|
|
@@ -137,10 +138,14 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
137
138
|
const frameRef = (0, import_vue2.ref)(null);
|
|
138
139
|
const triggerRef = (0, import_vue2.ref)(null);
|
|
139
140
|
const sendMessageToIframe = (type, data) => {
|
|
140
|
-
var
|
|
141
|
-
(
|
|
141
|
+
var _a2;
|
|
142
|
+
(_a2 = frameRef.value) == null ? void 0 : _a2.sendMessageToIframe(type, data);
|
|
142
143
|
};
|
|
143
144
|
const localSessionListCollapsed = (0, import_vue2.ref)(props.sessionListCollapsed);
|
|
145
|
+
const localDisplayMode = (0, import_vue2.ref)(props.displayMode);
|
|
146
|
+
const localSplitPosition = (0, import_vue2.ref)(
|
|
147
|
+
(_b = (_a = props.splitMode) == null ? void 0 : _a.position) != null ? _b : "right"
|
|
148
|
+
);
|
|
144
149
|
const minimized = (0, import_vue2.ref)(false);
|
|
145
150
|
const promptDockVisible = (0, import_vue2.ref)(true);
|
|
146
151
|
const isRestoring = (0, import_vue2.ref)(true);
|
|
@@ -168,6 +173,18 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
168
173
|
splitPanelWidth.value = val;
|
|
169
174
|
}
|
|
170
175
|
);
|
|
176
|
+
(0, import_vue2.watch)(
|
|
177
|
+
() => props.displayMode,
|
|
178
|
+
(val) => {
|
|
179
|
+
localDisplayMode.value = val;
|
|
180
|
+
}
|
|
181
|
+
);
|
|
182
|
+
const handleToggleDisplayMode = () => {
|
|
183
|
+
const modes = ["bubble", "split", "auto"];
|
|
184
|
+
const currentIndex = modes.indexOf(localDisplayMode.value);
|
|
185
|
+
const nextIndex = (currentIndex + 1) % modes.length;
|
|
186
|
+
localDisplayMode.value = modes[nextIndex];
|
|
187
|
+
};
|
|
171
188
|
const {
|
|
172
189
|
buttonActive,
|
|
173
190
|
containerClasses,
|
|
@@ -264,12 +281,15 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
264
281
|
isSplitMode,
|
|
265
282
|
panelWidth,
|
|
266
283
|
splitConfig,
|
|
284
|
+
splitPosition,
|
|
267
285
|
handleResize,
|
|
268
|
-
handleToggle: handleSplitToggle
|
|
286
|
+
handleToggle: handleSplitToggle,
|
|
287
|
+
handleTogglePosition
|
|
269
288
|
} = (0, import_use_split.useSplitMode)({
|
|
270
|
-
displayMode:
|
|
289
|
+
displayMode: localDisplayMode,
|
|
271
290
|
splitMode: (0, import_vue2.toRef)(props, "splitMode"),
|
|
272
291
|
open: (0, import_vue2.toRef)(props, "open"),
|
|
292
|
+
splitPosition: localSplitPosition,
|
|
273
293
|
onOpenChange: (nextOpen) => {
|
|
274
294
|
emit("update:open", nextOpen);
|
|
275
295
|
emit("toggle", nextOpen);
|
|
@@ -278,6 +298,9 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
278
298
|
splitPanelWidth.value = width;
|
|
279
299
|
emit("update:splitPanelWidth", width);
|
|
280
300
|
emit("split-panel-width-change", width);
|
|
301
|
+
},
|
|
302
|
+
onPositionChange: (position) => {
|
|
303
|
+
localSplitPosition.value = position;
|
|
281
304
|
}
|
|
282
305
|
});
|
|
283
306
|
(0, import_use_persist_state.usePersistState)({
|
|
@@ -288,6 +311,8 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
288
311
|
theme: (0, import_vue2.toRef)(props, "theme"),
|
|
289
312
|
sessionListCollapsed: localSessionListCollapsed,
|
|
290
313
|
splitPanelWidth,
|
|
314
|
+
displayMode: localDisplayMode,
|
|
315
|
+
splitPosition: localSplitPosition,
|
|
291
316
|
onRestore: (state) => {
|
|
292
317
|
if (state.open !== void 0 && state.open !== props.open) {
|
|
293
318
|
emit("update:open", state.open);
|
|
@@ -322,6 +347,12 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
322
347
|
if (state.splitPanelWidth !== void 0 && state.splitPanelWidth !== props.splitPanelWidth) {
|
|
323
348
|
handleResize(state.splitPanelWidth);
|
|
324
349
|
}
|
|
350
|
+
if (state.displayMode !== void 0 && state.displayMode !== props.displayMode) {
|
|
351
|
+
localDisplayMode.value = state.displayMode;
|
|
352
|
+
}
|
|
353
|
+
if (state.splitPosition !== void 0) {
|
|
354
|
+
localSplitPosition.value = state.splitPosition;
|
|
355
|
+
}
|
|
325
356
|
(0, import_vue2.nextTick)(() => {
|
|
326
357
|
syncStateToIframe();
|
|
327
358
|
setTimeout(() => {
|
|
@@ -359,12 +390,12 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
359
390
|
}
|
|
360
391
|
});
|
|
361
392
|
const bubbleQuadrant = (0, import_vue2.computed)(() => {
|
|
362
|
-
var
|
|
393
|
+
var _a2, _b2, _c, _d;
|
|
363
394
|
if (typeof window === "undefined") return "bottom-right";
|
|
364
395
|
const centerX = windowWidth.value / 2;
|
|
365
396
|
const centerY = windowHeight.value / 2;
|
|
366
397
|
const bubbleSize = 44;
|
|
367
|
-
const currentOffset = (
|
|
398
|
+
const currentOffset = (_b2 = (_a2 = triggerRef.value) == null ? void 0 : _a2.offset) != null ? _b2 : bubbleOffset.value;
|
|
368
399
|
const effectiveX = ((_c = currentOffset == null ? void 0 : currentOffset.x) != null ? _c : windowWidth.value - bubbleSize - 24) + bubbleSize / 2;
|
|
369
400
|
const effectiveY = ((_d = currentOffset == null ? void 0 : currentOffset.y) != null ? _d : windowHeight.value - bubbleSize - 24) + bubbleSize / 2;
|
|
370
401
|
if (effectiveX >= centerX && effectiveY >= centerY) {
|
|
@@ -382,14 +413,14 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
382
413
|
return quadrant === "top-right" || quadrant === "bottom-right";
|
|
383
414
|
});
|
|
384
415
|
const chatPositionStyle = (0, import_vue2.computed)(() => {
|
|
385
|
-
var
|
|
416
|
+
var _a2, _b2, _c;
|
|
386
417
|
if (typeof window === "undefined") return {};
|
|
387
418
|
const chatWidth = minimized.value ? 300 : 700;
|
|
388
419
|
const chatHeight = minimized.value ? 300 : Math.min(windowHeight.value * 0.86, windowHeight.value - 40);
|
|
389
420
|
const gap = 24;
|
|
390
421
|
const bubbleSize = 44;
|
|
391
422
|
const screenMargin = 20;
|
|
392
|
-
const effectiveOffset = (_c = (
|
|
423
|
+
const effectiveOffset = (_c = (_b2 = (_a2 = triggerRef.value) == null ? void 0 : _a2.offset) != null ? _b2 : bubbleOffset.value) != null ? _c : { x: windowWidth.value - bubbleSize - gap, y: windowHeight.value - bubbleSize - gap };
|
|
393
424
|
const style = {};
|
|
394
425
|
if (isBubbleOnRightSide.value) {
|
|
395
426
|
let rightPos = windowWidth.value - effectiveOffset.x + gap;
|
|
@@ -489,9 +520,11 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
489
520
|
promptDockVisible,
|
|
490
521
|
bubbleOffset,
|
|
491
522
|
mode: effectiveMode,
|
|
523
|
+
displayMode: localDisplayMode,
|
|
524
|
+
splitPosition,
|
|
492
525
|
sessionStates: (0, import_vue2.computed)(() => {
|
|
493
|
-
var
|
|
494
|
-
return (
|
|
526
|
+
var _a2;
|
|
527
|
+
return (_a2 = props.sessionStates) != null ? _a2 : {};
|
|
495
528
|
}),
|
|
496
529
|
iframeSource,
|
|
497
530
|
buttonActive,
|
|
@@ -506,6 +539,8 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
506
539
|
handleTogglePromptDock,
|
|
507
540
|
handleToggleSessionList,
|
|
508
541
|
handleToggleTheme,
|
|
542
|
+
handleToggleDisplayMode,
|
|
543
|
+
handleToggleSplitPosition: handleTogglePosition,
|
|
509
544
|
handleEmptyAction,
|
|
510
545
|
handleCreateSession,
|
|
511
546
|
handleSelectSession,
|
|
@@ -531,7 +566,7 @@ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)(__spreadProp
|
|
|
531
566
|
return dialogResolve;
|
|
532
567
|
}, set dialogResolve(v) {
|
|
533
568
|
dialogResolve = v;
|
|
534
|
-
}, showConfirmDialog, handleDialogConfirm, handleDialogCancel, frameRef, triggerRef, sendMessageToIframe, localSessionListCollapsed, minimized, promptDockVisible, isRestoring, iframeLoaded, splitPanelWidth, syncStateToIframe, handleFrameLoaded, buttonActive, containerClasses, iframeSource, sessionListTitle, resolvedTheme, handleClose, handleEmptyAction, handleToggle, handleToggleSessionList, handleToggleTheme, sessionItems, handleCreateSession, handleDeleteSession, handleSelectSession, bubbleVisible, hasSelectedElements, selectedElementItems, handleClearSelectedNodes, handleClickSelectedNode, handleRemoveSelectedNode, handleToggleSelectMode, highlightVisible, highlightStyle, tooltipVisible, tooltipStyle, tooltipContent, bubbleOffset, effectiveMode, isSplitMode, panelWidth, splitConfig, handleResize, handleSplitToggle, handleToggleMinimize, handleTogglePromptDock, windowWidth, windowHeight, handleWindowResize, bubbleQuadrant, isBubbleOnRightSide, chatPositionStyle, handleBubbleOffsetChange, handleResizeStart, handleResizeEnd, chatAnimationOrigin, isDragging, get wasOpenBeforeDrag() {
|
|
569
|
+
}, showConfirmDialog, handleDialogConfirm, handleDialogCancel, frameRef, triggerRef, sendMessageToIframe, localSessionListCollapsed, localDisplayMode, localSplitPosition, minimized, promptDockVisible, isRestoring, iframeLoaded, splitPanelWidth, syncStateToIframe, handleFrameLoaded, handleToggleDisplayMode, buttonActive, containerClasses, iframeSource, sessionListTitle, resolvedTheme, handleClose, handleEmptyAction, handleToggle, handleToggleSessionList, handleToggleTheme, sessionItems, handleCreateSession, handleDeleteSession, handleSelectSession, bubbleVisible, hasSelectedElements, selectedElementItems, handleClearSelectedNodes, handleClickSelectedNode, handleRemoveSelectedNode, handleToggleSelectMode, highlightVisible, highlightStyle, tooltipVisible, tooltipStyle, tooltipContent, bubbleOffset, effectiveMode, isSplitMode, panelWidth, splitConfig, splitPosition, handleResize, handleSplitToggle, handleTogglePosition, handleToggleMinimize, handleTogglePromptDock, windowWidth, windowHeight, handleWindowResize, bubbleQuadrant, isBubbleOnRightSide, chatPositionStyle, handleBubbleOffsetChange, handleResizeStart, handleResizeEnd, chatAnimationOrigin, isDragging, get wasOpenBeforeDrag() {
|
|
535
570
|
return wasOpenBeforeDrag;
|
|
536
571
|
}, set wasOpenBeforeDrag(v) {
|
|
537
572
|
wasOpenBeforeDrag = v;
|
|
@@ -606,6 +641,7 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
606
641
|
"notification-mode": $setup.notificationMode,
|
|
607
642
|
thinking: $props.thinking,
|
|
608
643
|
"resolved-theme": $setup.resolvedTheme,
|
|
644
|
+
"split-position": $setup.splitPosition,
|
|
609
645
|
onResize: $setup.handleResize,
|
|
610
646
|
onResizeStart: $setup.handleResizeStart,
|
|
611
647
|
onResizeEnd: $setup.handleResizeEnd,
|
|
@@ -674,7 +710,7 @@ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
674
710
|
]),
|
|
675
711
|
key: "6"
|
|
676
712
|
} : void 0
|
|
677
|
-
]), 1032, ["mode", "open", "minimized", "position-style", "animation-origin", "panel-width", "resizable", "min-width", "max-width", "no-transition", "dragging", "notification-visible", "notification-message", "notification-mode", "thinking", "resolved-theme", "onResize", "onToggle"]),
|
|
713
|
+
]), 1032, ["mode", "open", "minimized", "position-style", "animation-origin", "panel-width", "resizable", "min-width", "max-width", "no-transition", "dragging", "notification-visible", "notification-message", "notification-mode", "thinking", "resolved-theme", "split-position", "onResize", "onToggle"]),
|
|
678
714
|
(0, import_vue3.createVNode)($setup["SelectHint"]),
|
|
679
715
|
(0, import_vue3.withDirectives)((0, import_vue3.createElementVNode)(
|
|
680
716
|
"div",
|
package/lib/web-types.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json","framework":"vue","name":"@vite-plugin-opencode-assistant/components","version":"1.0.
|
|
1
|
+
{"$schema":"https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json","framework":"vue","name":"@vite-plugin-opencode-assistant/components","version":"1.0.50","contributions":{"html":{"tags":[{"name":"open-code","attributes":[{"name":"","default":"`'bottom-right'`","description":"挂件显示的位置","value":{"type":"`'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'`","kind":"expression"}},{"name":"","default":"`false`","description":"挂件是否打开","value":{"type":"`boolean`","kind":"expression"}},{"name":"","default":"`'auto'`","description":"主题模式","value":{"type":"`'light' | 'dark' | 'auto'`","kind":"expression"}},{"name":"","default":"`'AI 助手'`","description":"助手头部显示的标题","value":{"type":"`string`","kind":"expression"}},{"name":"","default":"`'Ctrl+K'`","description":"快捷键提示文本","value":{"type":"`string`","kind":"expression"}},{"name":"","default":"`'按 ESC 或 Ctrl+P 退出'`","description":"选择模式快捷键提示文本","value":{"type":"`string`","kind":"expression"}},{"name":"","default":"`false`","description":"是否进入选择页面元素模式","value":{"type":"`boolean`","kind":"expression"}},{"name":"","default":"`true`","description":"会话列表是否折叠","value":{"type":"`boolean`","kind":"expression"}},{"name":"","default":"`'id'`","description":"会话列表项的唯一键字段","value":{"type":"`string`","kind":"expression"}},{"name":"","default":"`false`","description":"iframe 是否显示加载状态","value":{"type":"`boolean`","kind":"expression"}},{"name":"","default":"`undefined`","description":"会话列表是否加载中","value":{"type":"`boolean`","kind":"expression"}},{"name":"","default":"`false`","description":"是否显示会话列表骨架屏","value":{"type":"`boolean`","kind":"expression"}},{"name":"","default":"`false`","description":"是否显示空状态","value":{"type":"`boolean`","kind":"expression"}},{"name":"","default":"`false`","description":"是否显示错误状态","value":{"type":"`boolean`","kind":"expression"}},{"name":"","default":"`'当前项目暂无会话'`","description":"空状态显示的文本","value":{"type":"`string`","kind":"expression"}},{"name":"","default":"`'立即创建'`","description":"空状态操作按钮文本","value":{"type":"`string`","kind":"expression"}},{"name":"","default":"`''`","description":"Web UI 的 URL 来源","value":{"type":"`string`","kind":"expression"}},{"name":"","default":"`[]`","description":"会话列表数据","value":{"type":"`OpenCodeWidgetSession[]`","kind":"expression"}},{"name":"","default":"`null`","description":"当前选中的会话 ID","value":{"type":"`string | null`","kind":"expression"}},{"name":"","default":"`[]`","description":"已选中的元素列表","value":{"type":"`OpenCodeSelectedElement[]`","kind":"expression"}},{"name":"","default":"`true`","description":"是否显示\"一键清空\"按钮","value":{"type":"`boolean`","kind":"expression"}},{"name":"","default":"`true`","description":"是否启用选择模式","value":{"type":"`boolean`","kind":"expression"}},{"name":"","default":"`false`","description":"是否显示思考状态(加载中)","value":{"type":"`boolean`","kind":"expression"}}],"events":[{"name":"`update:open`","description":"当挂件打开或关闭时触发","arguments":[{"name":"open","type":"en"},{"name":"boolean"}]},{"name":"`update:selectMode`","description":"当选择模式切换时触发","arguments":[{"name":"mode","type":"de"},{"name":"boolean"}]},{"name":"`update:sessionListCollapsed`","description":"当会话列表折叠状态改变时触发","arguments":[{"name":"collapsed","type":"ed"},{"name":"boolean"}]},{"name":"`update:currentSessionId`","description":"当选中的会话 ID 改变时触发","arguments":[{"name":"sessionId","type":"Id"},{"name":"string | null"}]},{"name":"`update:selectedElements`","description":"当已选中的元素列表改变时触发","arguments":[{"name":"elements","type":"ts"},{"name":"OpenCodeSelectedElement[]"}]},{"name":"`update:theme`","description":"当主题模式改变时触发","arguments":[{"name":"theme","type":"me"},{"name":"'light' | 'dark' | 'auto'"}]},{"name":"`update:thinking`","description":"当思考状态改变时触发","arguments":[{"name":"thinking","type":"ng"},{"name":"boolean"}]},{"name":"","description":"点击触发挂件开关","arguments":[{"name":"open","type":"en"},{"name":"boolean"}]},{"name":"","description":"点击关闭按钮时触发","arguments":[]},{"name":"`toggle-session-list`","description":"点击会话列表切换按钮时触发","arguments":[{"name":"collapsed","type":"ed"},{"name":"boolean"}]},{"name":"`toggle-select-mode`","description":"点击选择模式切换按钮时触发","arguments":[{"name":"mode","type":"de"},{"name":"boolean"}]},{"name":"`toggle-theme`","description":"点击主题切换按钮时触发","arguments":[{"name":"theme","type":"me"},{"name":"'light' | 'dark' | 'auto'"}]},{"name":"`create-session`","description":"点击创建新会话时触发","arguments":[]},{"name":"`select-session`","description":"选中某个历史会话时触发","arguments":[{"name":"session","type":"on"},{"name":"OpenCodeWidgetSession"}]},{"name":"`delete-session`","description":"删除某个历史会话时触发","arguments":[{"name":"session","type":"on"},{"name":"OpenCodeWidgetSession"}]},{"name":"`click-selected-node`","description":"点击已选中的气泡或节点卡片时触发","arguments":[{"name":"element","type":"nt"},{"name":"OpenCodeSelectedElement"}]},{"name":"`remove-selected-node`","description":"删除已选中的元素时触发","arguments":[{"name":"payload","type":"ad"},{"name":"OpenCodeRemoveSelectedPayload"}]},{"name":"`clear-selected-nodes`","description":"清空所有选中元素时触发","arguments":[]},{"name":"`empty-action`","description":"点击空状态操作按钮时触发","arguments":[]},{"name":"`frame-loaded`","description":"iframe 加载完成时触发","arguments":[]},{"name":"`thinking-change`","description":"思考状态改变时触发(用于显示加载动画)","arguments":[{"name":"thinking","type":"ng"},{"name":"boolean"}]}],"slots":[{"name":"`button-icon`","description":"自定义触发按钮图标"},{"name":"`session-toggle-icon`","description":"自定义会话列表切换图标"},{"name":"`select-icon`","description":"自定义选择模式切换图标"},{"name":"`close-icon`","description":"自定义关闭按钮图标"},{"name":"`theme-icon`","description":"自定义主题切换图标"},{"name":"`sessions-empty`","description":"自定义会话列表空状态"},{"name":"`empty-state`","description":"自定义 iframe 空状态"},{"name":"","description":"自定义 iframe 加载状态"},{"name":"","description":"自定义错误状态"},{"name":"","description":"自定义 iframe 内容"}]}],"attributes":[]}},"js-types-syntax":"typescript"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vite-plugin-opencode-assistant/components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.50",
|
|
4
4
|
"description": "Reusable OpenCode widget components built with Pagoda CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"css-selector-generator": "^3.9.1",
|
|
34
|
-
"@vite-plugin-opencode-assistant/shared": "1.0.
|
|
34
|
+
"@vite-plugin-opencode-assistant/shared": "1.0.50"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@vitejs/plugin-vue": "^6.0.5",
|