@aipanel/ui 1.2.0-beta.0

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.
Files changed (153) hide show
  1. package/es/AI-panel-widget/composables/use-inspector.d.ts +52 -0
  2. package/es/AI-panel-widget/composables/use-inspector.mjs +437 -0
  3. package/es/AI-panel-widget/composables/use-persist-state.d.ts +32 -0
  4. package/es/AI-panel-widget/composables/use-persist-state.mjs +83 -0
  5. package/es/AI-panel-widget/composables/use-selection.d.ts +19 -0
  6. package/es/AI-panel-widget/composables/use-selection.mjs +112 -0
  7. package/es/AI-panel-widget/composables/use-session.d.ts +16 -0
  8. package/es/AI-panel-widget/composables/use-session.mjs +47 -0
  9. package/es/AI-panel-widget/composables/use-split.d.ts +30 -0
  10. package/es/AI-panel-widget/composables/use-split.mjs +133 -0
  11. package/es/AI-panel-widget/composables/use-widget.d.ts +27 -0
  12. package/es/AI-panel-widget/composables/use-widget.mjs +78 -0
  13. package/es/AI-panel-widget/index.d.ts +5 -0
  14. package/es/AI-panel-widget/index.mjs +9 -0
  15. package/es/AI-panel-widget/src/assets/logo.svg +13 -0
  16. package/es/AI-panel-widget/src/components/AIPanelLogo-sfc.css +1 -0
  17. package/es/AI-panel-widget/src/components/AIPanelLogo.vue.d.ts +8 -0
  18. package/es/AI-panel-widget/src/components/AIPanelLogo.vue.mjs +40 -0
  19. package/es/AI-panel-widget/src/components/ChatPanel-sfc.css +1 -0
  20. package/es/AI-panel-widget/src/components/ChatPanel.vue.d.ts +179 -0
  21. package/es/AI-panel-widget/src/components/ChatPanel.vue.mjs +308 -0
  22. package/es/AI-panel-widget/src/components/FloatingBubble/FloatingBubble-sfc.css +1 -0
  23. package/es/AI-panel-widget/src/components/FloatingBubble/FloatingBubble.vue.d.ts +44 -0
  24. package/es/AI-panel-widget/src/components/FloatingBubble/FloatingBubble.vue.mjs +311 -0
  25. package/es/AI-panel-widget/src/components/FloatingBubble/index.d.ts +3 -0
  26. package/es/AI-panel-widget/src/components/FloatingBubble/index.mjs +5 -0
  27. package/es/AI-panel-widget/src/components/FloatingBubble/types.d.ts +24 -0
  28. package/es/AI-panel-widget/src/components/FloatingBubble/types.mjs +0 -0
  29. package/es/AI-panel-widget/src/components/Frame-sfc.css +1 -0
  30. package/es/AI-panel-widget/src/components/Frame.vue.d.ts +22 -0
  31. package/es/AI-panel-widget/src/components/Frame.vue.mjs +143 -0
  32. package/es/AI-panel-widget/src/components/Header-sfc.css +1 -0
  33. package/es/AI-panel-widget/src/components/Header.vue.d.ts +27 -0
  34. package/es/AI-panel-widget/src/components/Header.vue.mjs +683 -0
  35. package/es/AI-panel-widget/src/components/ResizeHandle-sfc.css +1 -0
  36. package/es/AI-panel-widget/src/components/ResizeHandle.vue.d.ts +22 -0
  37. package/es/AI-panel-widget/src/components/ResizeHandle.vue.mjs +79 -0
  38. package/es/AI-panel-widget/src/components/SelectHint-sfc.css +1 -0
  39. package/es/AI-panel-widget/src/components/SelectHint.vue.d.ts +3 -0
  40. package/es/AI-panel-widget/src/components/SelectHint.vue.mjs +40 -0
  41. package/es/AI-panel-widget/src/components/SelectedBubbles-sfc.css +1 -0
  42. package/es/AI-panel-widget/src/components/SelectedBubbles.vue.d.ts +3 -0
  43. package/es/AI-panel-widget/src/components/SelectedBubbles.vue.mjs +84 -0
  44. package/es/AI-panel-widget/src/components/SelectedNodes-sfc.css +1 -0
  45. package/es/AI-panel-widget/src/components/SelectedNodes.vue.d.ts +3 -0
  46. package/es/AI-panel-widget/src/components/SelectedNodes.vue.mjs +103 -0
  47. package/es/AI-panel-widget/src/components/SessionList-sfc.css +1 -0
  48. package/es/AI-panel-widget/src/components/SessionList.vue.d.ts +13 -0
  49. package/es/AI-panel-widget/src/components/SessionList.vue.mjs +222 -0
  50. package/es/AI-panel-widget/src/components/SplitTrigger-sfc.css +1 -0
  51. package/es/AI-panel-widget/src/components/SplitTrigger.vue.d.ts +18 -0
  52. package/es/AI-panel-widget/src/components/SplitTrigger.vue.mjs +112 -0
  53. package/es/AI-panel-widget/src/components/Trigger-sfc.css +1 -0
  54. package/es/AI-panel-widget/src/components/Trigger.vue.d.ts +28 -0
  55. package/es/AI-panel-widget/src/components/Trigger.vue.mjs +74 -0
  56. package/es/AI-panel-widget/src/context.d.ts +67 -0
  57. package/es/AI-panel-widget/src/context.mjs +16 -0
  58. package/es/AI-panel-widget/src/index-sfc.css +1 -0
  59. package/es/AI-panel-widget/src/index.vue.d.ts +69 -0
  60. package/es/AI-panel-widget/src/index.vue.mjs +782 -0
  61. package/es/AI-panel-widget/src/types.d.ts +2 -0
  62. package/es/AI-panel-widget/src/types.mjs +0 -0
  63. package/es/AI-panel-widget/style/index-pure.d.ts +0 -0
  64. package/es/AI-panel-widget/style/index-pure.mjs +0 -0
  65. package/es/AI-panel-widget/style/index.d.ts +0 -0
  66. package/es/AI-panel-widget/style/index.mjs +0 -0
  67. package/es/AI-panel-widget/style/less-pure.d.ts +0 -0
  68. package/es/AI-panel-widget/style/less-pure.mjs +0 -0
  69. package/es/AI-panel-widget/style/less.d.ts +0 -0
  70. package/es/AI-panel-widget/style/less.mjs +0 -0
  71. package/es/env.d.ts +15 -0
  72. package/es/index.d.ts +7 -0
  73. package/es/index.mjs +22 -0
  74. package/es/setup.d.ts +1 -0
  75. package/es/setup.mjs +4 -0
  76. package/lib/AI-panel-widget/composables/use-inspector.cjs +466 -0
  77. package/lib/AI-panel-widget/composables/use-inspector.d.ts +52 -0
  78. package/lib/AI-panel-widget/composables/use-persist-state.cjs +102 -0
  79. package/lib/AI-panel-widget/composables/use-persist-state.d.ts +32 -0
  80. package/lib/AI-panel-widget/composables/use-selection.cjs +131 -0
  81. package/lib/AI-panel-widget/composables/use-selection.d.ts +19 -0
  82. package/lib/AI-panel-widget/composables/use-session.cjs +66 -0
  83. package/lib/AI-panel-widget/composables/use-session.d.ts +16 -0
  84. package/lib/AI-panel-widget/composables/use-split.cjs +152 -0
  85. package/lib/AI-panel-widget/composables/use-split.d.ts +30 -0
  86. package/lib/AI-panel-widget/composables/use-widget.cjs +97 -0
  87. package/lib/AI-panel-widget/composables/use-widget.d.ts +27 -0
  88. package/lib/AI-panel-widget/index.cjs +39 -0
  89. package/lib/AI-panel-widget/index.d.ts +5 -0
  90. package/lib/AI-panel-widget/src/assets/logo.svg +13 -0
  91. package/lib/AI-panel-widget/src/components/AIPanelLogo-sfc.css +1 -0
  92. package/lib/AI-panel-widget/src/components/AIPanelLogo.vue.cjs +69 -0
  93. package/lib/AI-panel-widget/src/components/AIPanelLogo.vue.d.ts +8 -0
  94. package/lib/AI-panel-widget/src/components/ChatPanel-sfc.css +1 -0
  95. package/lib/AI-panel-widget/src/components/ChatPanel.vue.cjs +337 -0
  96. package/lib/AI-panel-widget/src/components/ChatPanel.vue.d.ts +179 -0
  97. package/lib/AI-panel-widget/src/components/FloatingBubble/FloatingBubble-sfc.css +1 -0
  98. package/lib/AI-panel-widget/src/components/FloatingBubble/FloatingBubble.vue.cjs +330 -0
  99. package/lib/AI-panel-widget/src/components/FloatingBubble/FloatingBubble.vue.d.ts +44 -0
  100. package/lib/AI-panel-widget/src/components/FloatingBubble/index.cjs +35 -0
  101. package/lib/AI-panel-widget/src/components/FloatingBubble/index.d.ts +3 -0
  102. package/lib/AI-panel-widget/src/components/FloatingBubble/types.cjs +15 -0
  103. package/lib/AI-panel-widget/src/components/FloatingBubble/types.d.ts +24 -0
  104. package/lib/AI-panel-widget/src/components/Frame-sfc.css +1 -0
  105. package/lib/AI-panel-widget/src/components/Frame.vue.cjs +162 -0
  106. package/lib/AI-panel-widget/src/components/Frame.vue.d.ts +22 -0
  107. package/lib/AI-panel-widget/src/components/Header-sfc.css +1 -0
  108. package/lib/AI-panel-widget/src/components/Header.vue.cjs +702 -0
  109. package/lib/AI-panel-widget/src/components/Header.vue.d.ts +27 -0
  110. package/lib/AI-panel-widget/src/components/ResizeHandle-sfc.css +1 -0
  111. package/lib/AI-panel-widget/src/components/ResizeHandle.vue.cjs +98 -0
  112. package/lib/AI-panel-widget/src/components/ResizeHandle.vue.d.ts +22 -0
  113. package/lib/AI-panel-widget/src/components/SelectHint-sfc.css +1 -0
  114. package/lib/AI-panel-widget/src/components/SelectHint.vue.cjs +59 -0
  115. package/lib/AI-panel-widget/src/components/SelectHint.vue.d.ts +3 -0
  116. package/lib/AI-panel-widget/src/components/SelectedBubbles-sfc.css +1 -0
  117. package/lib/AI-panel-widget/src/components/SelectedBubbles.vue.cjs +103 -0
  118. package/lib/AI-panel-widget/src/components/SelectedBubbles.vue.d.ts +3 -0
  119. package/lib/AI-panel-widget/src/components/SelectedNodes-sfc.css +1 -0
  120. package/lib/AI-panel-widget/src/components/SelectedNodes.vue.cjs +122 -0
  121. package/lib/AI-panel-widget/src/components/SelectedNodes.vue.d.ts +3 -0
  122. package/lib/AI-panel-widget/src/components/SessionList-sfc.css +1 -0
  123. package/lib/AI-panel-widget/src/components/SessionList.vue.cjs +241 -0
  124. package/lib/AI-panel-widget/src/components/SessionList.vue.d.ts +13 -0
  125. package/lib/AI-panel-widget/src/components/SplitTrigger-sfc.css +1 -0
  126. package/lib/AI-panel-widget/src/components/SplitTrigger.vue.cjs +131 -0
  127. package/lib/AI-panel-widget/src/components/SplitTrigger.vue.d.ts +18 -0
  128. package/lib/AI-panel-widget/src/components/Trigger-sfc.css +1 -0
  129. package/lib/AI-panel-widget/src/components/Trigger.vue.cjs +103 -0
  130. package/lib/AI-panel-widget/src/components/Trigger.vue.d.ts +28 -0
  131. package/lib/AI-panel-widget/src/context.cjs +35 -0
  132. package/lib/AI-panel-widget/src/context.d.ts +67 -0
  133. package/lib/AI-panel-widget/src/index-sfc.css +1 -0
  134. package/lib/AI-panel-widget/src/index.vue.cjs +811 -0
  135. package/lib/AI-panel-widget/src/index.vue.d.ts +69 -0
  136. package/lib/AI-panel-widget/src/types.cjs +15 -0
  137. package/lib/AI-panel-widget/src/types.d.ts +2 -0
  138. package/lib/AI-panel-widget/style/index-pure.cjs +0 -0
  139. package/lib/AI-panel-widget/style/index-pure.d.ts +0 -0
  140. package/lib/AI-panel-widget/style/index.cjs +0 -0
  141. package/lib/AI-panel-widget/style/index.d.ts +0 -0
  142. package/lib/AI-panel-widget/style/less-pure.cjs +0 -0
  143. package/lib/AI-panel-widget/style/less-pure.d.ts +0 -0
  144. package/lib/AI-panel-widget/style/less.cjs +0 -0
  145. package/lib/AI-panel-widget/style/less.d.ts +0 -0
  146. package/lib/env.d.ts +15 -0
  147. package/lib/index.cjs +42 -0
  148. package/lib/index.css +0 -0
  149. package/lib/index.d.ts +7 -0
  150. package/lib/index.less +0 -0
  151. package/lib/setup.cjs +23 -0
  152. package/lib/setup.d.ts +1 -0
  153. package/package.json +42 -0
@@ -0,0 +1,702 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var Header_vue_exports = {};
19
+ __export(Header_vue_exports, {
20
+ default: () => Header_vue_default
21
+ });
22
+ module.exports = __toCommonJS(Header_vue_exports);
23
+ var import_Header_sfc = require("./Header-sfc.css");
24
+ var import_vue = require("vue");
25
+ var import_vue2 = require("vue");
26
+ var import_context = require("../context.cjs");
27
+ var import_vue3 = require("vue");
28
+ const __vue_sfc__ = /* @__PURE__ */ (0, import_vue.defineComponent)({
29
+ __name: "Header",
30
+ setup(__props, { expose: __expose }) {
31
+ __expose();
32
+ const {
33
+ title,
34
+ sessionListTitle,
35
+ sessionListCollapsed,
36
+ selectMode,
37
+ selectEnabled,
38
+ theme,
39
+ resolvedTheme,
40
+ minimized,
41
+ promptDockVisible,
42
+ reviewPanelVisible,
43
+ reviewPanelEnabled,
44
+ mode,
45
+ displayMode,
46
+ splitPosition,
47
+ handleToggleSessionList,
48
+ handleToggleSelectMode,
49
+ handleToggleTheme,
50
+ handleToggleDisplayMode,
51
+ handleToggleSplitPosition,
52
+ handleClose,
53
+ handleToggleMinimize,
54
+ handleTogglePromptDock,
55
+ handleToggleReviewPanel,
56
+ handleRefresh,
57
+ handleCreateSession
58
+ } = (0, import_context.useAIPanelWidgetContext)();
59
+ const isSplitMode = (0, import_vue2.computed)(() => mode.value === "split");
60
+ const themeIconTitle = (0, import_vue2.computed)(() => {
61
+ const themeLabels = {
62
+ auto: "\u81EA\u52A8",
63
+ light: "\u4EAE\u8272",
64
+ dark: "\u6697\u8272"
65
+ };
66
+ return `\u4E3B\u9898: ${themeLabels[theme.value]} (${resolvedTheme.value})`;
67
+ });
68
+ const themeIconLabel = (0, import_vue2.computed)(() => {
69
+ const themeLabels = {
70
+ auto: "\u81EA\u52A8\u8DDF\u968F\u7CFB\u7EDF",
71
+ light: "\u4EAE\u8272\u4E3B\u9898",
72
+ dark: "\u6697\u8272\u4E3B\u9898"
73
+ };
74
+ return `\u5207\u6362\u4E3B\u9898 - \u5F53\u524D: ${themeLabels[theme.value]}`;
75
+ });
76
+ const displayModeIconTitle = (0, import_vue2.computed)(() => {
77
+ const displayModeLabels = {
78
+ bubble: "\u6C14\u6CE1\u6A21\u5F0F",
79
+ split: "\u5206\u5C4F\u6A21\u5F0F",
80
+ auto: "\u81EA\u52A8\u6A21\u5F0F",
81
+ extension: "\u6269\u5C55\u6A21\u5F0F",
82
+ "extension-selector": "\u6269\u5C55\u9009\u62E9\u5668\u6A21\u5F0F"
83
+ };
84
+ return `\u5C55\u793A\u6A21\u5F0F: ${displayModeLabels[displayMode.value]}`;
85
+ });
86
+ const displayModeIconLabel = (0, import_vue2.computed)(() => {
87
+ const displayModeLabels = {
88
+ bubble: "\u6C14\u6CE1\u6A21\u5F0F",
89
+ split: "\u5206\u5C4F\u6A21\u5F0F",
90
+ auto: "\u81EA\u52A8\u6A21\u5F0F",
91
+ extension: "\u6269\u5C55\u6A21\u5F0F",
92
+ "extension-selector": "\u6269\u5C55\u9009\u62E9\u5668\u6A21\u5F0F"
93
+ };
94
+ const modes = ["bubble", "split", "auto"];
95
+ const currentIndex = modes.indexOf(displayMode.value);
96
+ const nextMode = modes[(currentIndex + 1) % modes.length];
97
+ return `\u5207\u6362\u5C55\u793A\u6A21\u5F0F - \u4E0B\u4E00\u4E2A: ${displayModeLabels[nextMode]}`;
98
+ });
99
+ const splitPositionIconTitle = (0, import_vue2.computed)(() => {
100
+ const positionLabels = {
101
+ left: "\u5DE6\u4FA7",
102
+ right: "\u53F3\u4FA7"
103
+ };
104
+ return `\u5206\u680F\u4F4D\u7F6E: ${positionLabels[splitPosition.value]}`;
105
+ });
106
+ const splitPositionIconLabel = (0, import_vue2.computed)(() => {
107
+ const nextPosition = splitPosition.value === "right" ? "\u5DE6\u4FA7" : "\u53F3\u4FA7";
108
+ return `\u5207\u6362\u5206\u680F\u4F4D\u7F6E - \u4E0B\u4E00\u4E2A: ${nextPosition}`;
109
+ });
110
+ const __returned__ = { title, sessionListTitle, sessionListCollapsed, selectMode, selectEnabled, theme, resolvedTheme, minimized, promptDockVisible, reviewPanelVisible, reviewPanelEnabled, mode, displayMode, splitPosition, handleToggleSessionList, handleToggleSelectMode, handleToggleTheme, handleToggleDisplayMode, handleToggleSplitPosition, handleClose, handleToggleMinimize, handleTogglePromptDock, handleToggleReviewPanel, handleRefresh, handleCreateSession, isSplitMode, themeIconTitle, themeIconLabel, displayModeIconTitle, displayModeIconLabel, splitPositionIconTitle, splitPositionIconLabel };
111
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
112
+ return __returned__;
113
+ }
114
+ });
115
+ const _hoisted_1 = { class: "aipanel-chat-header" };
116
+ const _hoisted_2 = { class: "aipanel-chat-header-left" };
117
+ const _hoisted_3 = ["title", "aria-label", "aria-expanded"];
118
+ const _hoisted_4 = ["aria-pressed", "disabled"];
119
+ const _hoisted_5 = ["title", "aria-label"];
120
+ const _hoisted_6 = {
121
+ key: 0,
122
+ viewBox: "0 0 24 24",
123
+ width: "16",
124
+ height: "16",
125
+ fill: "none",
126
+ stroke: "currentColor",
127
+ "stroke-width": "2",
128
+ "aria-hidden": "true"
129
+ };
130
+ const _hoisted_7 = {
131
+ key: 1,
132
+ viewBox: "0 0 24 24",
133
+ width: "16",
134
+ height: "16",
135
+ fill: "none",
136
+ stroke: "currentColor",
137
+ "stroke-width": "2",
138
+ "aria-hidden": "true"
139
+ };
140
+ const _hoisted_8 = {
141
+ key: 2,
142
+ viewBox: "0 0 24 24",
143
+ width: "16",
144
+ height: "16",
145
+ fill: "none",
146
+ stroke: "currentColor",
147
+ "stroke-width": "2",
148
+ "aria-hidden": "true"
149
+ };
150
+ const _hoisted_9 = ["title", "aria-label"];
151
+ const _hoisted_10 = {
152
+ key: 0,
153
+ viewBox: "0 0 24 24",
154
+ width: "16",
155
+ height: "16",
156
+ fill: "none",
157
+ stroke: "currentColor",
158
+ "stroke-width": "2",
159
+ "aria-hidden": "true"
160
+ };
161
+ const _hoisted_11 = {
162
+ key: 1,
163
+ viewBox: "0 0 24 24",
164
+ width: "16",
165
+ height: "16",
166
+ fill: "none",
167
+ stroke: "currentColor",
168
+ "stroke-width": "2",
169
+ "aria-hidden": "true"
170
+ };
171
+ const _hoisted_12 = {
172
+ key: 2,
173
+ viewBox: "0 0 24 24",
174
+ width: "16",
175
+ height: "16",
176
+ fill: "none",
177
+ stroke: "currentColor",
178
+ "stroke-width": "2",
179
+ "aria-hidden": "true"
180
+ };
181
+ const _hoisted_13 = { class: "aipanel-chat-header-title" };
182
+ const _hoisted_14 = { class: "aipanel-chat-header-actions" };
183
+ const _hoisted_15 = ["title", "aria-label", "aria-pressed"];
184
+ const _hoisted_16 = ["title", "aria-label"];
185
+ const _hoisted_17 = {
186
+ key: 0,
187
+ viewBox: "0 0 24 24",
188
+ width: "16",
189
+ height: "16",
190
+ fill: "none",
191
+ stroke: "currentColor",
192
+ "stroke-width": "2",
193
+ "aria-hidden": "true"
194
+ };
195
+ const _hoisted_18 = {
196
+ key: 1,
197
+ viewBox: "0 0 24 24",
198
+ width: "16",
199
+ height: "16",
200
+ fill: "none",
201
+ stroke: "currentColor",
202
+ "stroke-width": "2",
203
+ "aria-hidden": "true"
204
+ };
205
+ const _hoisted_19 = ["title", "aria-label", "aria-pressed"];
206
+ const _hoisted_20 = ["title", "aria-label", "aria-pressed"];
207
+ const _hoisted_21 = {
208
+ key: 0,
209
+ viewBox: "0 0 24 24",
210
+ width: "14",
211
+ height: "14",
212
+ fill: "none",
213
+ stroke: "currentColor",
214
+ "stroke-width": "2",
215
+ "aria-hidden": "true"
216
+ };
217
+ const _hoisted_22 = {
218
+ key: 1,
219
+ viewBox: "0 0 24 24",
220
+ width: "14",
221
+ height: "14",
222
+ fill: "none",
223
+ stroke: "currentColor",
224
+ "stroke-width": "2",
225
+ "aria-hidden": "true"
226
+ };
227
+ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
228
+ return (0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("div", _hoisted_1, [
229
+ (0, import_vue3.createElementVNode)("div", _hoisted_2, [
230
+ (0, import_vue3.createElementVNode)("button", {
231
+ class: (0, import_vue3.normalizeClass)(["aipanel-header-btn session-toggle", { active: !$setup.sessionListCollapsed }]),
232
+ type: "button",
233
+ title: $setup.sessionListTitle,
234
+ "aria-label": $setup.sessionListTitle,
235
+ "aria-expanded": !$setup.sessionListCollapsed,
236
+ onClick: _cache[0] || (_cache[0] = (...args) => $setup.handleToggleSessionList && $setup.handleToggleSessionList(...args))
237
+ }, [
238
+ (0, import_vue3.renderSlot)(_ctx.$slots, "session-toggle-icon", {}, () => [
239
+ _cache[11] || (_cache[11] = (0, import_vue3.createElementVNode)(
240
+ "svg",
241
+ {
242
+ viewBox: "0 0 24 24",
243
+ width: "16",
244
+ height: "16",
245
+ fill: "none",
246
+ stroke: "currentColor",
247
+ "stroke-width": "2",
248
+ "aria-hidden": "true"
249
+ },
250
+ [
251
+ (0, import_vue3.createElementVNode)("path", {
252
+ d: "M4 6h16M4 12h16M4 18h16",
253
+ "stroke-linecap": "round"
254
+ })
255
+ ],
256
+ -1
257
+ /* CACHED */
258
+ ))
259
+ ])
260
+ ], 10, _hoisted_3),
261
+ (0, import_vue3.createElementVNode)("button", {
262
+ class: (0, import_vue3.normalizeClass)(["aipanel-header-btn select-btn", { active: $setup.selectMode }]),
263
+ type: "button",
264
+ title: "\u9009\u62E9\u9875\u9762\u5143\u7D20 (Ctrl+P)",
265
+ "aria-label": "\u9009\u62E9\u9875\u9762\u5143\u7D20",
266
+ "aria-pressed": $setup.selectMode,
267
+ disabled: !$setup.selectEnabled,
268
+ onClick: _cache[1] || (_cache[1] = (...args) => $setup.handleToggleSelectMode && $setup.handleToggleSelectMode(...args))
269
+ }, [
270
+ (0, import_vue3.renderSlot)(_ctx.$slots, "select-icon", {}, () => [
271
+ _cache[12] || (_cache[12] = (0, import_vue3.createElementVNode)(
272
+ "svg",
273
+ {
274
+ viewBox: "0 0 1024 1024",
275
+ width: "16",
276
+ height: "16",
277
+ "aria-hidden": "true"
278
+ },
279
+ [
280
+ (0, import_vue3.createElementVNode)("path", {
281
+ fill: "currentColor",
282
+ d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
283
+ }),
284
+ (0, import_vue3.createElementVNode)("path", {
285
+ fill: "currentColor",
286
+ 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"
287
+ })
288
+ ],
289
+ -1
290
+ /* CACHED */
291
+ ))
292
+ ])
293
+ ], 10, _hoisted_4),
294
+ (0, import_vue3.createElementVNode)("button", {
295
+ class: "aipanel-header-btn theme-btn",
296
+ type: "button",
297
+ title: $setup.themeIconTitle,
298
+ "aria-label": $setup.themeIconLabel,
299
+ onClick: _cache[2] || (_cache[2] = (...args) => $setup.handleToggleTheme && $setup.handleToggleTheme(...args))
300
+ }, [
301
+ (0, import_vue3.renderSlot)(_ctx.$slots, "theme-icon", {}, () => [
302
+ $setup.theme === "light" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_6, [..._cache[13] || (_cache[13] = [
303
+ (0, import_vue3.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)
304
+ ])])) : $setup.theme === "dark" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_7, [..._cache[14] || (_cache[14] = [
305
+ (0, import_vue3.createElementVNode)(
306
+ "path",
307
+ { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" },
308
+ null,
309
+ -1
310
+ /* CACHED */
311
+ )
312
+ ])])) : ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_8, [..._cache[15] || (_cache[15] = [
313
+ (0, import_vue3.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)
314
+ ])]))
315
+ ])
316
+ ], 8, _hoisted_5),
317
+ $setup.displayMode !== "extension" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
318
+ key: 0,
319
+ class: "aipanel-header-btn display-mode-btn",
320
+ type: "button",
321
+ title: $setup.displayModeIconTitle,
322
+ "aria-label": $setup.displayModeIconLabel,
323
+ onClick: _cache[3] || (_cache[3] = (...args) => $setup.handleToggleDisplayMode && $setup.handleToggleDisplayMode(...args))
324
+ }, [
325
+ (0, import_vue3.renderSlot)(_ctx.$slots, "display-mode-icon", {}, () => [
326
+ $setup.displayMode === "bubble" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_10, [..._cache[16] || (_cache[16] = [
327
+ (0, import_vue3.createElementVNode)(
328
+ "circle",
329
+ {
330
+ cx: "12",
331
+ cy: "12",
332
+ r: "10"
333
+ },
334
+ null,
335
+ -1
336
+ /* CACHED */
337
+ ),
338
+ (0, import_vue3.createElementVNode)(
339
+ "path",
340
+ {
341
+ d: "M8 14s1.5 2 4 2 4-2 4-2",
342
+ "stroke-linecap": "round"
343
+ },
344
+ null,
345
+ -1
346
+ /* CACHED */
347
+ ),
348
+ (0, import_vue3.createElementVNode)(
349
+ "line",
350
+ {
351
+ x1: "9",
352
+ y1: "9",
353
+ x2: "9.01",
354
+ y2: "9",
355
+ "stroke-linecap": "round"
356
+ },
357
+ null,
358
+ -1
359
+ /* CACHED */
360
+ ),
361
+ (0, import_vue3.createElementVNode)(
362
+ "line",
363
+ {
364
+ x1: "15",
365
+ y1: "9",
366
+ x2: "15.01",
367
+ y2: "9",
368
+ "stroke-linecap": "round"
369
+ },
370
+ null,
371
+ -1
372
+ /* CACHED */
373
+ )
374
+ ])])) : $setup.displayMode === "split" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_11, [..._cache[17] || (_cache[17] = [
375
+ (0, import_vue3.createElementVNode)(
376
+ "rect",
377
+ {
378
+ x: "3",
379
+ y: "3",
380
+ width: "18",
381
+ height: "18",
382
+ rx: "2"
383
+ },
384
+ null,
385
+ -1
386
+ /* CACHED */
387
+ ),
388
+ (0, import_vue3.createElementVNode)(
389
+ "line",
390
+ {
391
+ x1: "12",
392
+ y1: "3",
393
+ x2: "12",
394
+ y2: "21"
395
+ },
396
+ null,
397
+ -1
398
+ /* CACHED */
399
+ )
400
+ ])])) : ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_12, [..._cache[18] || (_cache[18] = [
401
+ (0, import_vue3.createElementVNode)(
402
+ "rect",
403
+ {
404
+ x: "3",
405
+ y: "3",
406
+ width: "8",
407
+ height: "8",
408
+ rx: "1"
409
+ },
410
+ null,
411
+ -1
412
+ /* CACHED */
413
+ ),
414
+ (0, import_vue3.createElementVNode)(
415
+ "rect",
416
+ {
417
+ x: "15",
418
+ y: "3",
419
+ width: "6",
420
+ height: "8",
421
+ rx: "1"
422
+ },
423
+ null,
424
+ -1
425
+ /* CACHED */
426
+ ),
427
+ (0, import_vue3.createElementVNode)(
428
+ "rect",
429
+ {
430
+ x: "3",
431
+ y: "15",
432
+ width: "8",
433
+ height: "6",
434
+ rx: "1"
435
+ },
436
+ null,
437
+ -1
438
+ /* CACHED */
439
+ ),
440
+ (0, import_vue3.createElementVNode)(
441
+ "circle",
442
+ {
443
+ cx: "18",
444
+ cy: "18",
445
+ r: "3"
446
+ },
447
+ null,
448
+ -1
449
+ /* CACHED */
450
+ )
451
+ ])]))
452
+ ])
453
+ ], 8, _hoisted_9)) : (0, import_vue3.createCommentVNode)("v-if", true)
454
+ ]),
455
+ (0, import_vue3.createElementVNode)(
456
+ "span",
457
+ _hoisted_13,
458
+ (0, import_vue3.toDisplayString)($setup.title),
459
+ 1
460
+ /* TEXT */
461
+ ),
462
+ (0, import_vue3.createElementVNode)("div", _hoisted_14, [
463
+ $setup.reviewPanelEnabled ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
464
+ key: 0,
465
+ class: (0, import_vue3.normalizeClass)(["aipanel-header-btn review-panel", { active: $setup.reviewPanelVisible }]),
466
+ type: "button",
467
+ title: $setup.reviewPanelVisible ? "\u6536\u8D77\u5BA1\u67E5\u9762\u677F" : "\u5C55\u5F00\u5BA1\u67E5\u9762\u677F",
468
+ "aria-label": $setup.reviewPanelVisible ? "\u6536\u8D77\u5BA1\u67E5\u9762\u677F" : "\u5C55\u5F00\u5BA1\u67E5\u9762\u677F",
469
+ "aria-pressed": $setup.reviewPanelVisible,
470
+ onClick: _cache[4] || (_cache[4] = (...args) => $setup.handleToggleReviewPanel && $setup.handleToggleReviewPanel(...args))
471
+ }, [..._cache[19] || (_cache[19] = [
472
+ (0, import_vue3.createElementVNode)(
473
+ "svg",
474
+ {
475
+ viewBox: "0 0 24 24",
476
+ width: "15",
477
+ height: "15",
478
+ fill: "none",
479
+ stroke: "currentColor",
480
+ "stroke-width": "2",
481
+ "stroke-linecap": "round",
482
+ "stroke-linejoin": "round",
483
+ "aria-hidden": "true"
484
+ },
485
+ [
486
+ (0, import_vue3.createElementVNode)("polyline", { points: "16 18 22 12 16 6" }),
487
+ (0, import_vue3.createElementVNode)("polyline", { points: "8 6 2 12 8 18" })
488
+ ],
489
+ -1
490
+ /* CACHED */
491
+ )
492
+ ])], 10, _hoisted_15)) : (0, import_vue3.createCommentVNode)("v-if", true),
493
+ $setup.displayMode === "extension" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
494
+ key: 1,
495
+ class: "aipanel-header-btn refresh-btn",
496
+ type: "button",
497
+ title: "\u5237\u65B0\u9762\u677F",
498
+ "aria-label": "\u5237\u65B0\u9762\u677F",
499
+ onClick: _cache[5] || (_cache[5] = (...args) => $setup.handleRefresh && $setup.handleRefresh(...args))
500
+ }, [..._cache[20] || (_cache[20] = [
501
+ (0, import_vue3.createElementVNode)(
502
+ "svg",
503
+ {
504
+ viewBox: "0 0 24 24",
505
+ width: "16",
506
+ height: "16",
507
+ fill: "none",
508
+ stroke: "currentColor",
509
+ "stroke-width": "2",
510
+ "aria-hidden": "true"
511
+ },
512
+ [
513
+ (0, import_vue3.createElementVNode)("polyline", { points: "23,4 23,10 17,10" }),
514
+ (0, import_vue3.createElementVNode)("path", { d: "M20.49 15a9 9 0 1 1-2.12-9.36L23 10" })
515
+ ],
516
+ -1
517
+ /* CACHED */
518
+ )
519
+ ])])) : (0, import_vue3.createCommentVNode)("v-if", true),
520
+ $setup.displayMode === "extension" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
521
+ key: 2,
522
+ class: "aipanel-header-btn new-session-btn",
523
+ type: "button",
524
+ title: "\u65B0\u5EFA\u4F1A\u8BDD",
525
+ "aria-label": "\u65B0\u5EFA\u4F1A\u8BDD",
526
+ onClick: _cache[6] || (_cache[6] = (...args) => $setup.handleCreateSession && $setup.handleCreateSession(...args))
527
+ }, [..._cache[21] || (_cache[21] = [
528
+ (0, import_vue3.createElementVNode)(
529
+ "svg",
530
+ {
531
+ xmlns: "http://www.w3.org/2000/svg",
532
+ width: "16",
533
+ height: "16",
534
+ viewBox: "0 0 16 16",
535
+ fill: "none",
536
+ "aria-hidden": "true"
537
+ },
538
+ [
539
+ (0, import_vue3.createElementVNode)("path", {
540
+ d: "M8 0.599609C3.91309 0.599609 0.599609 3.91309 0.599609 8C0.599609 9.13376 0.855461 10.2098 1.3125 11.1719L1.5918 11.7588L2.76562 11.2012L2.48633 10.6143C2.11034 9.82278 1.90039 8.93675 1.90039 8C1.90039 4.63106 4.63106 1.90039 8 1.90039C11.3689 1.90039 14.0996 4.63106 14.0996 8C14.0996 11.3689 11.3689 14.0996 8 14.0996C7.31041 14.0996 6.80528 14.0514 6.35742 13.9277C5.91623 13.8059 5.49768 13.6021 4.99707 13.2529C4.26492 12.7422 3.21611 12.5616 2.35156 13.1074L2.33789 13.1162L2.32422 13.126L1.58789 13.6436L2.01953 14.9297L3.0459 14.207C3.36351 14.0065 3.83838 14.0294 4.25293 14.3184C4.84547 14.7317 5.39743 15.011 6.01172 15.1807C6.61947 15.3485 7.25549 15.4004 8 15.4004C12.0869 15.4004 15.4004 12.0869 15.4004 8C15.4004 3.91309 12.0869 0.599609 8 0.599609ZM7.34473 4.93945V7.34961H4.93945V8.65039H7.34473V11.0605H8.64551V8.65039H11.0605V7.34961H8.64551V4.93945H7.34473Z",
541
+ fill: "currentColor"
542
+ })
543
+ ],
544
+ -1
545
+ /* CACHED */
546
+ )
547
+ ])])) : (0, import_vue3.createCommentVNode)("v-if", true),
548
+ $setup.isSplitMode && $setup.displayMode !== "extension" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
549
+ key: 3,
550
+ class: "aipanel-header-btn split-position-btn",
551
+ type: "button",
552
+ title: $setup.splitPositionIconTitle,
553
+ "aria-label": $setup.splitPositionIconLabel,
554
+ onClick: _cache[7] || (_cache[7] = (...args) => $setup.handleToggleSplitPosition && $setup.handleToggleSplitPosition(...args))
555
+ }, [
556
+ (0, import_vue3.renderSlot)(_ctx.$slots, "split-position-icon", {}, () => [
557
+ $setup.splitPosition === "right" ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_17, [..._cache[22] || (_cache[22] = [
558
+ (0, import_vue3.createElementVNode)(
559
+ "rect",
560
+ {
561
+ x: "3",
562
+ y: "3",
563
+ width: "18",
564
+ height: "18",
565
+ rx: "2"
566
+ },
567
+ null,
568
+ -1
569
+ /* CACHED */
570
+ ),
571
+ (0, import_vue3.createElementVNode)(
572
+ "line",
573
+ {
574
+ x1: "15",
575
+ y1: "3",
576
+ x2: "15",
577
+ y2: "21"
578
+ },
579
+ null,
580
+ -1
581
+ /* CACHED */
582
+ )
583
+ ])])) : ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_18, [..._cache[23] || (_cache[23] = [
584
+ (0, import_vue3.createElementVNode)(
585
+ "rect",
586
+ {
587
+ x: "3",
588
+ y: "3",
589
+ width: "18",
590
+ height: "18",
591
+ rx: "2"
592
+ },
593
+ null,
594
+ -1
595
+ /* CACHED */
596
+ ),
597
+ (0, import_vue3.createElementVNode)(
598
+ "line",
599
+ {
600
+ x1: "9",
601
+ y1: "3",
602
+ x2: "9",
603
+ y2: "21"
604
+ },
605
+ null,
606
+ -1
607
+ /* CACHED */
608
+ )
609
+ ])]))
610
+ ])
611
+ ], 8, _hoisted_16)) : (0, import_vue3.createCommentVNode)("v-if", true),
612
+ !$setup.isSplitMode ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
613
+ key: 4,
614
+ class: "aipanel-header-btn prompt-dock",
615
+ type: "button",
616
+ title: $setup.promptDockVisible ? "\u9690\u85CF\u5BF9\u8BDD\u6846" : "\u663E\u793A\u5BF9\u8BDD\u6846",
617
+ "aria-label": $setup.promptDockVisible ? "\u9690\u85CF\u5BF9\u8BDD\u6846" : "\u663E\u793A\u5BF9\u8BDD\u6846",
618
+ "aria-pressed": $setup.promptDockVisible,
619
+ onClick: _cache[8] || (_cache[8] = (...args) => $setup.handleTogglePromptDock && $setup.handleTogglePromptDock(...args))
620
+ }, [
621
+ (0, import_vue3.renderSlot)(_ctx.$slots, "prompt-dock-icon", {}, () => [
622
+ _cache[24] || (_cache[24] = (0, import_vue3.createElementVNode)(
623
+ "svg",
624
+ {
625
+ viewBox: "0 0 24 24",
626
+ width: "14",
627
+ height: "14",
628
+ fill: "none",
629
+ stroke: "currentColor",
630
+ "stroke-width": "2",
631
+ "aria-hidden": "true"
632
+ },
633
+ [
634
+ (0, import_vue3.createElementVNode)("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" })
635
+ ],
636
+ -1
637
+ /* CACHED */
638
+ ))
639
+ ])
640
+ ], 8, _hoisted_19)) : (0, import_vue3.createCommentVNode)("v-if", true),
641
+ !$setup.isSplitMode ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
642
+ key: 5,
643
+ class: "aipanel-header-btn minimize",
644
+ type: "button",
645
+ title: $setup.minimized ? "\u5C55\u5F00" : "\u6700\u5C0F\u5316",
646
+ "aria-label": $setup.minimized ? "\u5C55\u5F00\u9762\u677F" : "\u6700\u5C0F\u5316\u9762\u677F",
647
+ "aria-pressed": $setup.minimized,
648
+ onClick: _cache[9] || (_cache[9] = (...args) => $setup.handleToggleMinimize && $setup.handleToggleMinimize(...args))
649
+ }, [
650
+ (0, import_vue3.renderSlot)(_ctx.$slots, "minimize-icon", {}, () => [
651
+ $setup.minimized ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_21, [..._cache[25] || (_cache[25] = [
652
+ (0, import_vue3.createElementVNode)(
653
+ "path",
654
+ { d: "M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3" },
655
+ null,
656
+ -1
657
+ /* CACHED */
658
+ )
659
+ ])])) : ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("svg", _hoisted_22, [..._cache[26] || (_cache[26] = [
660
+ (0, import_vue3.createElementVNode)(
661
+ "path",
662
+ { d: "M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3" },
663
+ null,
664
+ -1
665
+ /* CACHED */
666
+ )
667
+ ])]))
668
+ ])
669
+ ], 8, _hoisted_20)) : (0, import_vue3.createCommentVNode)("v-if", true),
670
+ !$setup.isSplitMode ? ((0, import_vue3.openBlock)(), (0, import_vue3.createElementBlock)("button", {
671
+ key: 6,
672
+ class: "aipanel-header-btn close",
673
+ type: "button",
674
+ title: "\u5173\u95ED",
675
+ "aria-label": "\u5173\u95ED\u9762\u677F",
676
+ onClick: _cache[10] || (_cache[10] = (...args) => $setup.handleClose && $setup.handleClose(...args))
677
+ }, [
678
+ (0, import_vue3.renderSlot)(_ctx.$slots, "close-icon", {}, () => [
679
+ _cache[27] || (_cache[27] = (0, import_vue3.createElementVNode)(
680
+ "svg",
681
+ {
682
+ viewBox: "0 0 24 24",
683
+ width: "14",
684
+ height: "14",
685
+ fill: "none",
686
+ stroke: "currentColor",
687
+ "stroke-width": "2",
688
+ "aria-hidden": "true"
689
+ },
690
+ [
691
+ (0, import_vue3.createElementVNode)("path", { d: "M18 6L6 18M6 6l12 12" })
692
+ ],
693
+ -1
694
+ /* CACHED */
695
+ ))
696
+ ])
697
+ ])) : (0, import_vue3.createCommentVNode)("v-if", true)
698
+ ])
699
+ ]);
700
+ }
701
+ __vue_sfc__.render = __vue_render__;
702
+ var Header_vue_default = __vue_sfc__;