@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,683 @@
1
+ import "./Header-sfc.css";
2
+ import { defineComponent as _defineComponent } from "vue";
3
+ import { computed } from "vue";
4
+ import { useAIPanelWidgetContext } from "../context.mjs";
5
+ const __vue_sfc__ = /* @__PURE__ */ _defineComponent({
6
+ __name: "Header",
7
+ setup(__props, { expose: __expose }) {
8
+ __expose();
9
+ const {
10
+ title,
11
+ sessionListTitle,
12
+ sessionListCollapsed,
13
+ selectMode,
14
+ selectEnabled,
15
+ theme,
16
+ resolvedTheme,
17
+ minimized,
18
+ promptDockVisible,
19
+ reviewPanelVisible,
20
+ reviewPanelEnabled,
21
+ mode,
22
+ displayMode,
23
+ splitPosition,
24
+ handleToggleSessionList,
25
+ handleToggleSelectMode,
26
+ handleToggleTheme,
27
+ handleToggleDisplayMode,
28
+ handleToggleSplitPosition,
29
+ handleClose,
30
+ handleToggleMinimize,
31
+ handleTogglePromptDock,
32
+ handleToggleReviewPanel,
33
+ handleRefresh,
34
+ handleCreateSession
35
+ } = useAIPanelWidgetContext();
36
+ const isSplitMode = computed(() => mode.value === "split");
37
+ const themeIconTitle = computed(() => {
38
+ const themeLabels = {
39
+ auto: "\u81EA\u52A8",
40
+ light: "\u4EAE\u8272",
41
+ dark: "\u6697\u8272"
42
+ };
43
+ return `\u4E3B\u9898: ${themeLabels[theme.value]} (${resolvedTheme.value})`;
44
+ });
45
+ const themeIconLabel = computed(() => {
46
+ const themeLabels = {
47
+ auto: "\u81EA\u52A8\u8DDF\u968F\u7CFB\u7EDF",
48
+ light: "\u4EAE\u8272\u4E3B\u9898",
49
+ dark: "\u6697\u8272\u4E3B\u9898"
50
+ };
51
+ return `\u5207\u6362\u4E3B\u9898 - \u5F53\u524D: ${themeLabels[theme.value]}`;
52
+ });
53
+ const displayModeIconTitle = computed(() => {
54
+ const displayModeLabels = {
55
+ bubble: "\u6C14\u6CE1\u6A21\u5F0F",
56
+ split: "\u5206\u5C4F\u6A21\u5F0F",
57
+ auto: "\u81EA\u52A8\u6A21\u5F0F",
58
+ extension: "\u6269\u5C55\u6A21\u5F0F",
59
+ "extension-selector": "\u6269\u5C55\u9009\u62E9\u5668\u6A21\u5F0F"
60
+ };
61
+ return `\u5C55\u793A\u6A21\u5F0F: ${displayModeLabels[displayMode.value]}`;
62
+ });
63
+ const displayModeIconLabel = computed(() => {
64
+ const displayModeLabels = {
65
+ bubble: "\u6C14\u6CE1\u6A21\u5F0F",
66
+ split: "\u5206\u5C4F\u6A21\u5F0F",
67
+ auto: "\u81EA\u52A8\u6A21\u5F0F",
68
+ extension: "\u6269\u5C55\u6A21\u5F0F",
69
+ "extension-selector": "\u6269\u5C55\u9009\u62E9\u5668\u6A21\u5F0F"
70
+ };
71
+ const modes = ["bubble", "split", "auto"];
72
+ const currentIndex = modes.indexOf(displayMode.value);
73
+ const nextMode = modes[(currentIndex + 1) % modes.length];
74
+ return `\u5207\u6362\u5C55\u793A\u6A21\u5F0F - \u4E0B\u4E00\u4E2A: ${displayModeLabels[nextMode]}`;
75
+ });
76
+ const splitPositionIconTitle = computed(() => {
77
+ const positionLabels = {
78
+ left: "\u5DE6\u4FA7",
79
+ right: "\u53F3\u4FA7"
80
+ };
81
+ return `\u5206\u680F\u4F4D\u7F6E: ${positionLabels[splitPosition.value]}`;
82
+ });
83
+ const splitPositionIconLabel = computed(() => {
84
+ const nextPosition = splitPosition.value === "right" ? "\u5DE6\u4FA7" : "\u53F3\u4FA7";
85
+ return `\u5207\u6362\u5206\u680F\u4F4D\u7F6E - \u4E0B\u4E00\u4E2A: ${nextPosition}`;
86
+ });
87
+ 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 };
88
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
89
+ return __returned__;
90
+ }
91
+ });
92
+ 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";
93
+ const _hoisted_1 = { class: "aipanel-chat-header" };
94
+ const _hoisted_2 = { class: "aipanel-chat-header-left" };
95
+ const _hoisted_3 = ["title", "aria-label", "aria-expanded"];
96
+ const _hoisted_4 = ["aria-pressed", "disabled"];
97
+ const _hoisted_5 = ["title", "aria-label"];
98
+ const _hoisted_6 = {
99
+ key: 0,
100
+ viewBox: "0 0 24 24",
101
+ width: "16",
102
+ height: "16",
103
+ fill: "none",
104
+ stroke: "currentColor",
105
+ "stroke-width": "2",
106
+ "aria-hidden": "true"
107
+ };
108
+ const _hoisted_7 = {
109
+ key: 1,
110
+ viewBox: "0 0 24 24",
111
+ width: "16",
112
+ height: "16",
113
+ fill: "none",
114
+ stroke: "currentColor",
115
+ "stroke-width": "2",
116
+ "aria-hidden": "true"
117
+ };
118
+ const _hoisted_8 = {
119
+ key: 2,
120
+ viewBox: "0 0 24 24",
121
+ width: "16",
122
+ height: "16",
123
+ fill: "none",
124
+ stroke: "currentColor",
125
+ "stroke-width": "2",
126
+ "aria-hidden": "true"
127
+ };
128
+ const _hoisted_9 = ["title", "aria-label"];
129
+ const _hoisted_10 = {
130
+ key: 0,
131
+ viewBox: "0 0 24 24",
132
+ width: "16",
133
+ height: "16",
134
+ fill: "none",
135
+ stroke: "currentColor",
136
+ "stroke-width": "2",
137
+ "aria-hidden": "true"
138
+ };
139
+ const _hoisted_11 = {
140
+ key: 1,
141
+ viewBox: "0 0 24 24",
142
+ width: "16",
143
+ height: "16",
144
+ fill: "none",
145
+ stroke: "currentColor",
146
+ "stroke-width": "2",
147
+ "aria-hidden": "true"
148
+ };
149
+ const _hoisted_12 = {
150
+ key: 2,
151
+ viewBox: "0 0 24 24",
152
+ width: "16",
153
+ height: "16",
154
+ fill: "none",
155
+ stroke: "currentColor",
156
+ "stroke-width": "2",
157
+ "aria-hidden": "true"
158
+ };
159
+ const _hoisted_13 = { class: "aipanel-chat-header-title" };
160
+ const _hoisted_14 = { class: "aipanel-chat-header-actions" };
161
+ const _hoisted_15 = ["title", "aria-label", "aria-pressed"];
162
+ const _hoisted_16 = ["title", "aria-label"];
163
+ const _hoisted_17 = {
164
+ key: 0,
165
+ viewBox: "0 0 24 24",
166
+ width: "16",
167
+ height: "16",
168
+ fill: "none",
169
+ stroke: "currentColor",
170
+ "stroke-width": "2",
171
+ "aria-hidden": "true"
172
+ };
173
+ const _hoisted_18 = {
174
+ key: 1,
175
+ viewBox: "0 0 24 24",
176
+ width: "16",
177
+ height: "16",
178
+ fill: "none",
179
+ stroke: "currentColor",
180
+ "stroke-width": "2",
181
+ "aria-hidden": "true"
182
+ };
183
+ const _hoisted_19 = ["title", "aria-label", "aria-pressed"];
184
+ const _hoisted_20 = ["title", "aria-label", "aria-pressed"];
185
+ const _hoisted_21 = {
186
+ key: 0,
187
+ viewBox: "0 0 24 24",
188
+ width: "14",
189
+ height: "14",
190
+ fill: "none",
191
+ stroke: "currentColor",
192
+ "stroke-width": "2",
193
+ "aria-hidden": "true"
194
+ };
195
+ const _hoisted_22 = {
196
+ key: 1,
197
+ viewBox: "0 0 24 24",
198
+ width: "14",
199
+ height: "14",
200
+ fill: "none",
201
+ stroke: "currentColor",
202
+ "stroke-width": "2",
203
+ "aria-hidden": "true"
204
+ };
205
+ function __vue_render__(_ctx, _cache, $props, $setup, $data, $options) {
206
+ return _openBlock(), _createElementBlock("div", _hoisted_1, [
207
+ _createElementVNode("div", _hoisted_2, [
208
+ _createElementVNode("button", {
209
+ class: _normalizeClass(["aipanel-header-btn session-toggle", { active: !$setup.sessionListCollapsed }]),
210
+ type: "button",
211
+ title: $setup.sessionListTitle,
212
+ "aria-label": $setup.sessionListTitle,
213
+ "aria-expanded": !$setup.sessionListCollapsed,
214
+ onClick: _cache[0] || (_cache[0] = (...args) => $setup.handleToggleSessionList && $setup.handleToggleSessionList(...args))
215
+ }, [
216
+ _renderSlot(_ctx.$slots, "session-toggle-icon", {}, () => [
217
+ _cache[11] || (_cache[11] = _createElementVNode(
218
+ "svg",
219
+ {
220
+ viewBox: "0 0 24 24",
221
+ width: "16",
222
+ height: "16",
223
+ fill: "none",
224
+ stroke: "currentColor",
225
+ "stroke-width": "2",
226
+ "aria-hidden": "true"
227
+ },
228
+ [
229
+ _createElementVNode("path", {
230
+ d: "M4 6h16M4 12h16M4 18h16",
231
+ "stroke-linecap": "round"
232
+ })
233
+ ],
234
+ -1
235
+ /* CACHED */
236
+ ))
237
+ ])
238
+ ], 10, _hoisted_3),
239
+ _createElementVNode("button", {
240
+ class: _normalizeClass(["aipanel-header-btn select-btn", { active: $setup.selectMode }]),
241
+ type: "button",
242
+ title: "\u9009\u62E9\u9875\u9762\u5143\u7D20 (Ctrl+P)",
243
+ "aria-label": "\u9009\u62E9\u9875\u9762\u5143\u7D20",
244
+ "aria-pressed": $setup.selectMode,
245
+ disabled: !$setup.selectEnabled,
246
+ onClick: _cache[1] || (_cache[1] = (...args) => $setup.handleToggleSelectMode && $setup.handleToggleSelectMode(...args))
247
+ }, [
248
+ _renderSlot(_ctx.$slots, "select-icon", {}, () => [
249
+ _cache[12] || (_cache[12] = _createElementVNode(
250
+ "svg",
251
+ {
252
+ viewBox: "0 0 1024 1024",
253
+ width: "16",
254
+ height: "16",
255
+ "aria-hidden": "true"
256
+ },
257
+ [
258
+ _createElementVNode("path", {
259
+ fill: "currentColor",
260
+ 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"
261
+ }),
262
+ _createElementVNode("path", {
263
+ fill: "currentColor",
264
+ 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"
265
+ })
266
+ ],
267
+ -1
268
+ /* CACHED */
269
+ ))
270
+ ])
271
+ ], 10, _hoisted_4),
272
+ _createElementVNode("button", {
273
+ class: "aipanel-header-btn theme-btn",
274
+ type: "button",
275
+ title: $setup.themeIconTitle,
276
+ "aria-label": $setup.themeIconLabel,
277
+ onClick: _cache[2] || (_cache[2] = (...args) => $setup.handleToggleTheme && $setup.handleToggleTheme(...args))
278
+ }, [
279
+ _renderSlot(_ctx.$slots, "theme-icon", {}, () => [
280
+ $setup.theme === "light" ? (_openBlock(), _createElementBlock("svg", _hoisted_6, [..._cache[13] || (_cache[13] = [
281
+ _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)
282
+ ])])) : $setup.theme === "dark" ? (_openBlock(), _createElementBlock("svg", _hoisted_7, [..._cache[14] || (_cache[14] = [
283
+ _createElementVNode(
284
+ "path",
285
+ { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" },
286
+ null,
287
+ -1
288
+ /* CACHED */
289
+ )
290
+ ])])) : (_openBlock(), _createElementBlock("svg", _hoisted_8, [..._cache[15] || (_cache[15] = [
291
+ _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)
292
+ ])]))
293
+ ])
294
+ ], 8, _hoisted_5),
295
+ $setup.displayMode !== "extension" ? (_openBlock(), _createElementBlock("button", {
296
+ key: 0,
297
+ class: "aipanel-header-btn display-mode-btn",
298
+ type: "button",
299
+ title: $setup.displayModeIconTitle,
300
+ "aria-label": $setup.displayModeIconLabel,
301
+ onClick: _cache[3] || (_cache[3] = (...args) => $setup.handleToggleDisplayMode && $setup.handleToggleDisplayMode(...args))
302
+ }, [
303
+ _renderSlot(_ctx.$slots, "display-mode-icon", {}, () => [
304
+ $setup.displayMode === "bubble" ? (_openBlock(), _createElementBlock("svg", _hoisted_10, [..._cache[16] || (_cache[16] = [
305
+ _createElementVNode(
306
+ "circle",
307
+ {
308
+ cx: "12",
309
+ cy: "12",
310
+ r: "10"
311
+ },
312
+ null,
313
+ -1
314
+ /* CACHED */
315
+ ),
316
+ _createElementVNode(
317
+ "path",
318
+ {
319
+ d: "M8 14s1.5 2 4 2 4-2 4-2",
320
+ "stroke-linecap": "round"
321
+ },
322
+ null,
323
+ -1
324
+ /* CACHED */
325
+ ),
326
+ _createElementVNode(
327
+ "line",
328
+ {
329
+ x1: "9",
330
+ y1: "9",
331
+ x2: "9.01",
332
+ y2: "9",
333
+ "stroke-linecap": "round"
334
+ },
335
+ null,
336
+ -1
337
+ /* CACHED */
338
+ ),
339
+ _createElementVNode(
340
+ "line",
341
+ {
342
+ x1: "15",
343
+ y1: "9",
344
+ x2: "15.01",
345
+ y2: "9",
346
+ "stroke-linecap": "round"
347
+ },
348
+ null,
349
+ -1
350
+ /* CACHED */
351
+ )
352
+ ])])) : $setup.displayMode === "split" ? (_openBlock(), _createElementBlock("svg", _hoisted_11, [..._cache[17] || (_cache[17] = [
353
+ _createElementVNode(
354
+ "rect",
355
+ {
356
+ x: "3",
357
+ y: "3",
358
+ width: "18",
359
+ height: "18",
360
+ rx: "2"
361
+ },
362
+ null,
363
+ -1
364
+ /* CACHED */
365
+ ),
366
+ _createElementVNode(
367
+ "line",
368
+ {
369
+ x1: "12",
370
+ y1: "3",
371
+ x2: "12",
372
+ y2: "21"
373
+ },
374
+ null,
375
+ -1
376
+ /* CACHED */
377
+ )
378
+ ])])) : (_openBlock(), _createElementBlock("svg", _hoisted_12, [..._cache[18] || (_cache[18] = [
379
+ _createElementVNode(
380
+ "rect",
381
+ {
382
+ x: "3",
383
+ y: "3",
384
+ width: "8",
385
+ height: "8",
386
+ rx: "1"
387
+ },
388
+ null,
389
+ -1
390
+ /* CACHED */
391
+ ),
392
+ _createElementVNode(
393
+ "rect",
394
+ {
395
+ x: "15",
396
+ y: "3",
397
+ width: "6",
398
+ height: "8",
399
+ rx: "1"
400
+ },
401
+ null,
402
+ -1
403
+ /* CACHED */
404
+ ),
405
+ _createElementVNode(
406
+ "rect",
407
+ {
408
+ x: "3",
409
+ y: "15",
410
+ width: "8",
411
+ height: "6",
412
+ rx: "1"
413
+ },
414
+ null,
415
+ -1
416
+ /* CACHED */
417
+ ),
418
+ _createElementVNode(
419
+ "circle",
420
+ {
421
+ cx: "18",
422
+ cy: "18",
423
+ r: "3"
424
+ },
425
+ null,
426
+ -1
427
+ /* CACHED */
428
+ )
429
+ ])]))
430
+ ])
431
+ ], 8, _hoisted_9)) : _createCommentVNode("v-if", true)
432
+ ]),
433
+ _createElementVNode(
434
+ "span",
435
+ _hoisted_13,
436
+ _toDisplayString($setup.title),
437
+ 1
438
+ /* TEXT */
439
+ ),
440
+ _createElementVNode("div", _hoisted_14, [
441
+ $setup.reviewPanelEnabled ? (_openBlock(), _createElementBlock("button", {
442
+ key: 0,
443
+ class: _normalizeClass(["aipanel-header-btn review-panel", { active: $setup.reviewPanelVisible }]),
444
+ type: "button",
445
+ title: $setup.reviewPanelVisible ? "\u6536\u8D77\u5BA1\u67E5\u9762\u677F" : "\u5C55\u5F00\u5BA1\u67E5\u9762\u677F",
446
+ "aria-label": $setup.reviewPanelVisible ? "\u6536\u8D77\u5BA1\u67E5\u9762\u677F" : "\u5C55\u5F00\u5BA1\u67E5\u9762\u677F",
447
+ "aria-pressed": $setup.reviewPanelVisible,
448
+ onClick: _cache[4] || (_cache[4] = (...args) => $setup.handleToggleReviewPanel && $setup.handleToggleReviewPanel(...args))
449
+ }, [..._cache[19] || (_cache[19] = [
450
+ _createElementVNode(
451
+ "svg",
452
+ {
453
+ viewBox: "0 0 24 24",
454
+ width: "15",
455
+ height: "15",
456
+ fill: "none",
457
+ stroke: "currentColor",
458
+ "stroke-width": "2",
459
+ "stroke-linecap": "round",
460
+ "stroke-linejoin": "round",
461
+ "aria-hidden": "true"
462
+ },
463
+ [
464
+ _createElementVNode("polyline", { points: "16 18 22 12 16 6" }),
465
+ _createElementVNode("polyline", { points: "8 6 2 12 8 18" })
466
+ ],
467
+ -1
468
+ /* CACHED */
469
+ )
470
+ ])], 10, _hoisted_15)) : _createCommentVNode("v-if", true),
471
+ $setup.displayMode === "extension" ? (_openBlock(), _createElementBlock("button", {
472
+ key: 1,
473
+ class: "aipanel-header-btn refresh-btn",
474
+ type: "button",
475
+ title: "\u5237\u65B0\u9762\u677F",
476
+ "aria-label": "\u5237\u65B0\u9762\u677F",
477
+ onClick: _cache[5] || (_cache[5] = (...args) => $setup.handleRefresh && $setup.handleRefresh(...args))
478
+ }, [..._cache[20] || (_cache[20] = [
479
+ _createElementVNode(
480
+ "svg",
481
+ {
482
+ viewBox: "0 0 24 24",
483
+ width: "16",
484
+ height: "16",
485
+ fill: "none",
486
+ stroke: "currentColor",
487
+ "stroke-width": "2",
488
+ "aria-hidden": "true"
489
+ },
490
+ [
491
+ _createElementVNode("polyline", { points: "23,4 23,10 17,10" }),
492
+ _createElementVNode("path", { d: "M20.49 15a9 9 0 1 1-2.12-9.36L23 10" })
493
+ ],
494
+ -1
495
+ /* CACHED */
496
+ )
497
+ ])])) : _createCommentVNode("v-if", true),
498
+ $setup.displayMode === "extension" ? (_openBlock(), _createElementBlock("button", {
499
+ key: 2,
500
+ class: "aipanel-header-btn new-session-btn",
501
+ type: "button",
502
+ title: "\u65B0\u5EFA\u4F1A\u8BDD",
503
+ "aria-label": "\u65B0\u5EFA\u4F1A\u8BDD",
504
+ onClick: _cache[6] || (_cache[6] = (...args) => $setup.handleCreateSession && $setup.handleCreateSession(...args))
505
+ }, [..._cache[21] || (_cache[21] = [
506
+ _createElementVNode(
507
+ "svg",
508
+ {
509
+ xmlns: "http://www.w3.org/2000/svg",
510
+ width: "16",
511
+ height: "16",
512
+ viewBox: "0 0 16 16",
513
+ fill: "none",
514
+ "aria-hidden": "true"
515
+ },
516
+ [
517
+ _createElementVNode("path", {
518
+ 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",
519
+ fill: "currentColor"
520
+ })
521
+ ],
522
+ -1
523
+ /* CACHED */
524
+ )
525
+ ])])) : _createCommentVNode("v-if", true),
526
+ $setup.isSplitMode && $setup.displayMode !== "extension" ? (_openBlock(), _createElementBlock("button", {
527
+ key: 3,
528
+ class: "aipanel-header-btn split-position-btn",
529
+ type: "button",
530
+ title: $setup.splitPositionIconTitle,
531
+ "aria-label": $setup.splitPositionIconLabel,
532
+ onClick: _cache[7] || (_cache[7] = (...args) => $setup.handleToggleSplitPosition && $setup.handleToggleSplitPosition(...args))
533
+ }, [
534
+ _renderSlot(_ctx.$slots, "split-position-icon", {}, () => [
535
+ $setup.splitPosition === "right" ? (_openBlock(), _createElementBlock("svg", _hoisted_17, [..._cache[22] || (_cache[22] = [
536
+ _createElementVNode(
537
+ "rect",
538
+ {
539
+ x: "3",
540
+ y: "3",
541
+ width: "18",
542
+ height: "18",
543
+ rx: "2"
544
+ },
545
+ null,
546
+ -1
547
+ /* CACHED */
548
+ ),
549
+ _createElementVNode(
550
+ "line",
551
+ {
552
+ x1: "15",
553
+ y1: "3",
554
+ x2: "15",
555
+ y2: "21"
556
+ },
557
+ null,
558
+ -1
559
+ /* CACHED */
560
+ )
561
+ ])])) : (_openBlock(), _createElementBlock("svg", _hoisted_18, [..._cache[23] || (_cache[23] = [
562
+ _createElementVNode(
563
+ "rect",
564
+ {
565
+ x: "3",
566
+ y: "3",
567
+ width: "18",
568
+ height: "18",
569
+ rx: "2"
570
+ },
571
+ null,
572
+ -1
573
+ /* CACHED */
574
+ ),
575
+ _createElementVNode(
576
+ "line",
577
+ {
578
+ x1: "9",
579
+ y1: "3",
580
+ x2: "9",
581
+ y2: "21"
582
+ },
583
+ null,
584
+ -1
585
+ /* CACHED */
586
+ )
587
+ ])]))
588
+ ])
589
+ ], 8, _hoisted_16)) : _createCommentVNode("v-if", true),
590
+ !$setup.isSplitMode ? (_openBlock(), _createElementBlock("button", {
591
+ key: 4,
592
+ class: "aipanel-header-btn prompt-dock",
593
+ type: "button",
594
+ title: $setup.promptDockVisible ? "\u9690\u85CF\u5BF9\u8BDD\u6846" : "\u663E\u793A\u5BF9\u8BDD\u6846",
595
+ "aria-label": $setup.promptDockVisible ? "\u9690\u85CF\u5BF9\u8BDD\u6846" : "\u663E\u793A\u5BF9\u8BDD\u6846",
596
+ "aria-pressed": $setup.promptDockVisible,
597
+ onClick: _cache[8] || (_cache[8] = (...args) => $setup.handleTogglePromptDock && $setup.handleTogglePromptDock(...args))
598
+ }, [
599
+ _renderSlot(_ctx.$slots, "prompt-dock-icon", {}, () => [
600
+ _cache[24] || (_cache[24] = _createElementVNode(
601
+ "svg",
602
+ {
603
+ viewBox: "0 0 24 24",
604
+ width: "14",
605
+ height: "14",
606
+ fill: "none",
607
+ stroke: "currentColor",
608
+ "stroke-width": "2",
609
+ "aria-hidden": "true"
610
+ },
611
+ [
612
+ _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" })
613
+ ],
614
+ -1
615
+ /* CACHED */
616
+ ))
617
+ ])
618
+ ], 8, _hoisted_19)) : _createCommentVNode("v-if", true),
619
+ !$setup.isSplitMode ? (_openBlock(), _createElementBlock("button", {
620
+ key: 5,
621
+ class: "aipanel-header-btn minimize",
622
+ type: "button",
623
+ title: $setup.minimized ? "\u5C55\u5F00" : "\u6700\u5C0F\u5316",
624
+ "aria-label": $setup.minimized ? "\u5C55\u5F00\u9762\u677F" : "\u6700\u5C0F\u5316\u9762\u677F",
625
+ "aria-pressed": $setup.minimized,
626
+ onClick: _cache[9] || (_cache[9] = (...args) => $setup.handleToggleMinimize && $setup.handleToggleMinimize(...args))
627
+ }, [
628
+ _renderSlot(_ctx.$slots, "minimize-icon", {}, () => [
629
+ $setup.minimized ? (_openBlock(), _createElementBlock("svg", _hoisted_21, [..._cache[25] || (_cache[25] = [
630
+ _createElementVNode(
631
+ "path",
632
+ { 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" },
633
+ null,
634
+ -1
635
+ /* CACHED */
636
+ )
637
+ ])])) : (_openBlock(), _createElementBlock("svg", _hoisted_22, [..._cache[26] || (_cache[26] = [
638
+ _createElementVNode(
639
+ "path",
640
+ { 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" },
641
+ null,
642
+ -1
643
+ /* CACHED */
644
+ )
645
+ ])]))
646
+ ])
647
+ ], 8, _hoisted_20)) : _createCommentVNode("v-if", true),
648
+ !$setup.isSplitMode ? (_openBlock(), _createElementBlock("button", {
649
+ key: 6,
650
+ class: "aipanel-header-btn close",
651
+ type: "button",
652
+ title: "\u5173\u95ED",
653
+ "aria-label": "\u5173\u95ED\u9762\u677F",
654
+ onClick: _cache[10] || (_cache[10] = (...args) => $setup.handleClose && $setup.handleClose(...args))
655
+ }, [
656
+ _renderSlot(_ctx.$slots, "close-icon", {}, () => [
657
+ _cache[27] || (_cache[27] = _createElementVNode(
658
+ "svg",
659
+ {
660
+ viewBox: "0 0 24 24",
661
+ width: "14",
662
+ height: "14",
663
+ fill: "none",
664
+ stroke: "currentColor",
665
+ "stroke-width": "2",
666
+ "aria-hidden": "true"
667
+ },
668
+ [
669
+ _createElementVNode("path", { d: "M18 6L6 18M6 6l12 12" })
670
+ ],
671
+ -1
672
+ /* CACHED */
673
+ ))
674
+ ])
675
+ ])) : _createCommentVNode("v-if", true)
676
+ ])
677
+ ]);
678
+ }
679
+ __vue_sfc__.render = __vue_render__;
680
+ var Header_vue_default = __vue_sfc__;
681
+ export {
682
+ Header_vue_default as default
683
+ };
@@ -0,0 +1 @@
1
+ .aipanel-resize-handle{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:col-resize;background:transparent;z-index:10;transition:background .2s ease}.aipanel-resize-handle.handle-left{left:auto;right:0}.aipanel-resize-handle:hover,.aipanel-resize-handle.resizing{background:var(--ap-primary-bg)}.aipanel-resize-handle:after{content:"";position:absolute;left:2px;top:50%;transform:translateY(-50%);width:2px;height:40px;background:var(--ap-border-secondary);border-radius:1px;opacity:0;transition:opacity .2s ease}.aipanel-resize-handle.handle-left:after{left:auto;right:2px}.aipanel-resize-handle:hover:after,.aipanel-resize-handle.resizing:after{opacity:1}