@carbon/ai-chat-components 0.8.0 → 0.9.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.
- package/README.md +1 -0
- package/custom-elements.json +917 -258
- package/es/components/card/src/card-footer.scss.js +1 -1
- package/es/components/card/src/card-steps.scss.js +1 -1
- package/es/components/card/src/card.scss.js +1 -1
- package/es/components/chat-button/src/chat-button.scss.js +1 -1
- package/es/components/chat-shell/index.d.ts +2 -2
- package/es/components/chat-shell/index.js +2 -2
- package/es/components/chat-shell/src/{cds-aichat-panel.d.ts → panel.d.ts} +11 -2
- package/es/components/chat-shell/src/{cds-aichat-panel.js → panel.js} +79 -26
- package/es/components/chat-shell/src/panel.js.map +1 -0
- package/es/components/chat-shell/src/panel.scss.js +13 -0
- package/es/components/chat-shell/src/panel.scss.js.map +1 -0
- package/es/components/chat-shell/src/{cds-aichat-shell.d.ts → shell.d.ts} +20 -3
- package/es/components/chat-shell/src/{cds-aichat-shell.js → shell.js} +298 -97
- package/es/components/chat-shell/src/shell.js.map +1 -0
- package/es/components/chat-shell/src/shell.scss.js +13 -0
- package/es/components/chat-shell/src/shell.scss.js.map +1 -0
- package/es/components/chat-shell/src/workspace-manager-utils.d.ts +90 -0
- package/es/components/chat-shell/src/workspace-manager-utils.js +120 -0
- package/es/components/chat-shell/src/workspace-manager-utils.js.map +1 -0
- package/es/components/chat-shell/src/workspace-manager.d.ts +52 -8
- package/es/components/chat-shell/src/workspace-manager.js +330 -117
- package/es/components/chat-shell/src/workspace-manager.js.map +1 -1
- package/es/components/code-snippet/src/code-snippet.d.ts +27 -11
- package/es/components/code-snippet/src/code-snippet.scss.js +1 -1
- package/es/components/markdown/src/markdown.js +1 -1
- package/es/components/markdown/src/markdown.js.map +1 -1
- package/es/components/toolbar/src/toolbar.d.ts +4 -0
- package/es/components/toolbar/src/toolbar.js +62 -28
- package/es/components/toolbar/src/toolbar.js.map +1 -1
- package/es/components/toolbar/src/toolbar.scss.js +1 -1
- package/es/components/workspace-shell/src/workspace-shell-footer.js +6 -1
- package/es/components/workspace-shell/src/workspace-shell-footer.js.map +1 -1
- package/es/components/workspace-shell/src/workspace-shell-footer.scss.js +1 -1
- package/es/components/workspace-shell/src/workspace-shell.d.ts +0 -1
- package/es/components/workspace-shell/src/workspace-shell.js +0 -6
- package/es/components/workspace-shell/src/workspace-shell.js.map +1 -1
- package/es/components/workspace-shell/src/workspace-shell.scss.js +1 -1
- package/es/react/chat-shell.d.ts +3 -3
- package/es/react/chat-shell.js +4 -4
- package/es/react/chat-shell.js.map +1 -1
- package/es/react/panel.d.ts +3 -3
- package/es/react/panel.js +5 -4
- package/es/react/panel.js.map +1 -1
- package/es/react/toolbar.js +1 -1
- package/es/react/toolbar.js.map +1 -1
- package/es-custom/components/card/src/card-footer.scss.js +1 -1
- package/es-custom/components/card/src/card-steps.scss.js +1 -1
- package/es-custom/components/card/src/card.scss.js +1 -1
- package/es-custom/components/chat-button/src/chat-button.scss.js +1 -1
- package/es-custom/components/chat-shell/index.d.ts +2 -2
- package/es-custom/components/chat-shell/index.js +2 -2
- package/es-custom/components/chat-shell/src/{cds-aichat-panel.d.ts → panel.d.ts} +11 -2
- package/es-custom/components/chat-shell/src/{cds-aichat-panel.js → panel.js} +79 -26
- package/es-custom/components/chat-shell/src/panel.js.map +1 -0
- package/es-custom/components/chat-shell/src/panel.scss.js +13 -0
- package/es-custom/components/chat-shell/src/panel.scss.js.map +1 -0
- package/es-custom/components/chat-shell/src/{cds-aichat-shell.d.ts → shell.d.ts} +20 -3
- package/es-custom/components/chat-shell/src/{cds-aichat-shell.js → shell.js} +298 -97
- package/es-custom/components/chat-shell/src/shell.js.map +1 -0
- package/es-custom/components/chat-shell/src/shell.scss.js +13 -0
- package/es-custom/components/chat-shell/src/shell.scss.js.map +1 -0
- package/es-custom/components/chat-shell/src/workspace-manager-utils.d.ts +90 -0
- package/es-custom/components/chat-shell/src/workspace-manager-utils.js +120 -0
- package/es-custom/components/chat-shell/src/workspace-manager-utils.js.map +1 -0
- package/es-custom/components/chat-shell/src/workspace-manager.d.ts +52 -8
- package/es-custom/components/chat-shell/src/workspace-manager.js +330 -117
- package/es-custom/components/chat-shell/src/workspace-manager.js.map +1 -1
- package/es-custom/components/code-snippet/src/code-snippet.d.ts +27 -11
- package/es-custom/components/code-snippet/src/code-snippet.scss.js +1 -1
- package/es-custom/components/markdown/src/markdown.js +1 -1
- package/es-custom/components/markdown/src/markdown.js.map +1 -1
- package/es-custom/components/toolbar/src/toolbar.d.ts +4 -0
- package/es-custom/components/toolbar/src/toolbar.js +62 -28
- package/es-custom/components/toolbar/src/toolbar.js.map +1 -1
- package/es-custom/components/toolbar/src/toolbar.scss.js +1 -1
- package/es-custom/components/workspace-shell/src/workspace-shell-footer.js +6 -1
- package/es-custom/components/workspace-shell/src/workspace-shell-footer.js.map +1 -1
- package/es-custom/components/workspace-shell/src/workspace-shell-footer.scss.js +1 -1
- package/es-custom/components/workspace-shell/src/workspace-shell.d.ts +0 -1
- package/es-custom/components/workspace-shell/src/workspace-shell.js +0 -6
- package/es-custom/components/workspace-shell/src/workspace-shell.js.map +1 -1
- package/es-custom/components/workspace-shell/src/workspace-shell.scss.js +1 -1
- package/es-custom/react/chat-shell.d.ts +3 -3
- package/es-custom/react/chat-shell.js +4 -4
- package/es-custom/react/chat-shell.js.map +1 -1
- package/es-custom/react/panel.d.ts +3 -3
- package/es-custom/react/panel.js +5 -4
- package/es-custom/react/panel.js.map +1 -1
- package/es-custom/react/toolbar.js +1 -1
- package/es-custom/react/toolbar.js.map +1 -1
- package/package.json +13 -10
- package/es/components/chat-shell/src/cds-aichat-panel.js.map +0 -1
- package/es/components/chat-shell/src/cds-aichat-panel.scss.js +0 -13
- package/es/components/chat-shell/src/cds-aichat-panel.scss.js.map +0 -1
- package/es/components/chat-shell/src/cds-aichat-shell.js.map +0 -1
- package/es/components/chat-shell/src/cds-aichat-shell.scss.js +0 -13
- package/es/components/chat-shell/src/cds-aichat-shell.scss.js.map +0 -1
- package/es-custom/components/chat-shell/src/cds-aichat-panel.js.map +0 -1
- package/es-custom/components/chat-shell/src/cds-aichat-panel.scss.js +0 -13
- package/es-custom/components/chat-shell/src/cds-aichat-panel.scss.js.map +0 -1
- package/es-custom/components/chat-shell/src/cds-aichat-shell.js.map +0 -1
- package/es-custom/components/chat-shell/src/cds-aichat-shell.scss.js +0 -13
- package/es-custom/components/chat-shell/src/cds-aichat-shell.scss.js.map +0 -1
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
import { __decorate } from 'tslib';
|
|
9
9
|
import { LitElement, nothing, html } from 'lit';
|
|
10
10
|
import { property } from 'lit/decorators.js';
|
|
11
|
-
import styles from './
|
|
11
|
+
import styles from './shell.scss.js';
|
|
12
12
|
import { PanelManager } from './panel-manager.js';
|
|
13
13
|
import { WorkspaceManager } from './workspace-manager.js';
|
|
14
14
|
import { carbonElement } from '../../../globals/decorators/carbon-element.js';
|
|
15
|
-
import './
|
|
15
|
+
import './panel.js';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* @license
|
|
@@ -22,8 +22,8 @@ import './cds-aichat-panel.js';
|
|
|
22
22
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
23
23
|
* LICENSE file in the root directory of this source tree.
|
|
24
24
|
*/
|
|
25
|
-
var
|
|
26
|
-
let
|
|
25
|
+
var CDSAIChatShell_1;
|
|
26
|
+
let CDSAIChatShell = CDSAIChatShell_1 = class CDSAIChatShell extends LitElement {
|
|
27
27
|
constructor() {
|
|
28
28
|
super(...arguments);
|
|
29
29
|
/**
|
|
@@ -55,17 +55,25 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
55
55
|
*/
|
|
56
56
|
this.historyLocation = "start";
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* ARIA label for the workspace region
|
|
59
59
|
*/
|
|
60
|
-
this.
|
|
60
|
+
this.workspaceAriaLabel = "Workspace panel";
|
|
61
|
+
/**
|
|
62
|
+
* ARIA label for the history region
|
|
63
|
+
*/
|
|
64
|
+
this.historyAriaLabel = "Conversation history";
|
|
65
|
+
/**
|
|
66
|
+
* ARIA label for the messages region
|
|
67
|
+
*/
|
|
68
|
+
this.messagesAriaLabel = "Chat messages";
|
|
61
69
|
/**
|
|
62
70
|
* @internal
|
|
63
71
|
*/
|
|
64
|
-
this.
|
|
72
|
+
this.hasHeaderContent = false;
|
|
65
73
|
/**
|
|
66
74
|
* @internal
|
|
67
75
|
*/
|
|
68
|
-
this.
|
|
76
|
+
this.hasHeaderAfterContent = false;
|
|
69
77
|
/**
|
|
70
78
|
* @internal
|
|
71
79
|
*/
|
|
@@ -85,15 +93,55 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
85
93
|
/**
|
|
86
94
|
* @internal
|
|
87
95
|
*/
|
|
88
|
-
this.
|
|
96
|
+
this.inputAndMessagesAtMaxWidth = false;
|
|
89
97
|
/**
|
|
90
98
|
* @internal
|
|
91
99
|
*/
|
|
92
|
-
this.
|
|
100
|
+
this.shouldRenderHistory = true;
|
|
93
101
|
/**
|
|
94
102
|
* @internal
|
|
95
103
|
*/
|
|
96
|
-
this.
|
|
104
|
+
this.workspacePanelRendering = false;
|
|
105
|
+
/**
|
|
106
|
+
* @internal
|
|
107
|
+
*/
|
|
108
|
+
this.workspacePanelOpen = false;
|
|
109
|
+
/**
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
this.lastShouldRenderWorkspacePanel = false;
|
|
113
|
+
/**
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
this.workspacePanelOpenScheduled = false;
|
|
117
|
+
/**
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
this.workspacePanelOpenRafId = null;
|
|
121
|
+
/**
|
|
122
|
+
* @internal
|
|
123
|
+
*/
|
|
124
|
+
this.lastWorkspaceInPanel = false;
|
|
125
|
+
/**
|
|
126
|
+
* @internal
|
|
127
|
+
*/
|
|
128
|
+
this.lastWorkspaceContainerVisible = false;
|
|
129
|
+
/**
|
|
130
|
+
* @internal
|
|
131
|
+
*/
|
|
132
|
+
this.suppressWorkspacePanelOpenAnimation = false;
|
|
133
|
+
/**
|
|
134
|
+
* @internal
|
|
135
|
+
*/
|
|
136
|
+
this.suppressWorkspacePanelCloseAnimation = false;
|
|
137
|
+
this.handleWorkspacePanelCloseEnd = () => {
|
|
138
|
+
if (this.workspaceManager?.shouldRenderPanel()) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
this.workspacePanelRendering = false;
|
|
142
|
+
this.suppressWorkspacePanelCloseAnimation = false;
|
|
143
|
+
this.requestUpdate();
|
|
144
|
+
};
|
|
97
145
|
}
|
|
98
146
|
getWidgetClasses() {
|
|
99
147
|
const workspaceState = this.workspaceManager?.getState();
|
|
@@ -106,6 +154,7 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
106
154
|
? "has-header-content"
|
|
107
155
|
: "",
|
|
108
156
|
this.hasFooterContent ? "has-footer-content" : "",
|
|
157
|
+
workspaceState?.isCheckingExpansion ? "workspace-checking" : "",
|
|
109
158
|
workspaceState?.isContracting ? "workspace-closing" : "",
|
|
110
159
|
workspaceState?.isExpanding ? "workspace-opening" : "",
|
|
111
160
|
]
|
|
@@ -115,8 +164,6 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
115
164
|
getInputAndMessagesClasses() {
|
|
116
165
|
return [
|
|
117
166
|
"input-and-messages",
|
|
118
|
-
this.hasMessagesBeforeContent ? "has-messages-before-content" : "",
|
|
119
|
-
this.hasMessagesAfterContent ? "has-messages-after-content" : "",
|
|
120
167
|
this.hasInputBeforeContent ? "has-input-before-content" : "",
|
|
121
168
|
this.hasInputContent ? "has-input-content" : "",
|
|
122
169
|
this.hasInputAfterContent ? "has-input-after-content" : "",
|
|
@@ -146,8 +193,6 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
146
193
|
return this.hasHeaderContent;
|
|
147
194
|
case "header-after":
|
|
148
195
|
return this.hasHeaderAfterContent;
|
|
149
|
-
case "messages-before":
|
|
150
|
-
return this.hasMessagesBeforeContent;
|
|
151
196
|
case "footer":
|
|
152
197
|
return this.hasFooterContent;
|
|
153
198
|
case "input-after":
|
|
@@ -156,8 +201,6 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
156
201
|
return this.hasInputContent;
|
|
157
202
|
case "input-before":
|
|
158
203
|
return this.hasInputBeforeContent;
|
|
159
|
-
case "messages-after":
|
|
160
|
-
return this.hasMessagesAfterContent;
|
|
161
204
|
case "messages":
|
|
162
205
|
return true; // messages slot is always considered to have content
|
|
163
206
|
default:
|
|
@@ -165,13 +208,20 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
165
208
|
}
|
|
166
209
|
}
|
|
167
210
|
renderWorkspaceInline() {
|
|
168
|
-
const
|
|
169
|
-
|
|
211
|
+
const shouldRenderInline = this.workspaceManager?.shouldRenderInline() ?? false;
|
|
212
|
+
const shouldSuppressInline = this.workspacePanelRendering && !this.workspacePanelOpen;
|
|
213
|
+
if (!shouldRenderInline || shouldSuppressInline) {
|
|
170
214
|
return nothing;
|
|
171
215
|
}
|
|
172
216
|
const workspaceState = this.workspaceManager?.getState();
|
|
173
217
|
return html `
|
|
174
|
-
<div
|
|
218
|
+
<div
|
|
219
|
+
class="workspace"
|
|
220
|
+
part="slot-workspace"
|
|
221
|
+
data-panel-slot="workspace"
|
|
222
|
+
role="region"
|
|
223
|
+
aria-label=${this.workspaceAriaLabel}
|
|
224
|
+
>
|
|
175
225
|
<div
|
|
176
226
|
class=${workspaceState?.contentVisible
|
|
177
227
|
? "workspace-content"
|
|
@@ -184,19 +234,26 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
184
234
|
`;
|
|
185
235
|
}
|
|
186
236
|
renderWorkspacePanel() {
|
|
187
|
-
|
|
188
|
-
if (!shouldRender) {
|
|
237
|
+
if (!this.workspacePanelRendering) {
|
|
189
238
|
return nothing;
|
|
190
239
|
}
|
|
240
|
+
// When switching from container to panel view, don't animate
|
|
241
|
+
// Only animate when opening from closed state
|
|
242
|
+
const animationOnOpen = this.suppressWorkspacePanelOpenAnimation
|
|
243
|
+
? "none"
|
|
244
|
+
: "slide-in-from-bottom";
|
|
191
245
|
return html `
|
|
192
246
|
<cds-aichat-panel
|
|
193
247
|
data-internal-panel
|
|
194
|
-
open
|
|
195
|
-
priority="0"
|
|
248
|
+
?open=${this.workspacePanelOpen}
|
|
196
249
|
full-width
|
|
197
250
|
show-chat-header
|
|
198
|
-
|
|
199
|
-
animation-on-
|
|
251
|
+
body-no-padding
|
|
252
|
+
animation-on-open=${animationOnOpen}
|
|
253
|
+
animation-on-close=${this.suppressWorkspacePanelCloseAnimation
|
|
254
|
+
? "none"
|
|
255
|
+
: "slide-out-to-bottom"}
|
|
256
|
+
@closeend=${this.handleWorkspacePanelCloseEnd}
|
|
200
257
|
>
|
|
201
258
|
<div slot="body" class="workspace-slot">
|
|
202
259
|
<slot name="workspace"></slot>
|
|
@@ -229,13 +286,15 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
229
286
|
}
|
|
230
287
|
renderMessagesSection() {
|
|
231
288
|
return html `
|
|
232
|
-
<div
|
|
233
|
-
|
|
289
|
+
<div
|
|
290
|
+
class=${this.getInputAndMessagesClasses()}
|
|
291
|
+
role="region"
|
|
292
|
+
aria-label=${this.messagesAriaLabel}
|
|
293
|
+
>
|
|
234
294
|
${this.renderSlot("messages", "messages")}
|
|
235
|
-
${this.renderSlot("
|
|
236
|
-
${this.renderSlot("input
|
|
237
|
-
${this.renderSlot("input", "input")}
|
|
238
|
-
${this.renderSlot("input-after", "input-after")}
|
|
295
|
+
${this.renderSlot("input-before", "input-before messages-max-width")}
|
|
296
|
+
${this.renderSlot("input", "input messages-max-width")}
|
|
297
|
+
${this.renderSlot("input-after", "input-after messages-max-width")}
|
|
239
298
|
</div>
|
|
240
299
|
`;
|
|
241
300
|
}
|
|
@@ -243,7 +302,11 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
243
302
|
if (!this.showHistory || !this.shouldRenderHistory) {
|
|
244
303
|
return nothing;
|
|
245
304
|
}
|
|
246
|
-
return html `<div
|
|
305
|
+
return html `<div
|
|
306
|
+
class="history"
|
|
307
|
+
role="region"
|
|
308
|
+
aria-label=${this.historyAriaLabel}
|
|
309
|
+
>
|
|
247
310
|
${this.renderSlot("history", "history")}
|
|
248
311
|
</div>`;
|
|
249
312
|
}
|
|
@@ -291,27 +354,73 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
291
354
|
this.observeMainContentBodyWidth();
|
|
292
355
|
this.observeSlotContent();
|
|
293
356
|
this.observeCssProperties();
|
|
357
|
+
this.syncWorkspacePanelState();
|
|
294
358
|
}
|
|
295
359
|
hasSlotContent(slotName) {
|
|
296
360
|
const slot = this.renderRoot.querySelector(`slot[name="${slotName}"]`);
|
|
297
361
|
if (!slot) {
|
|
298
362
|
return false;
|
|
299
363
|
}
|
|
300
|
-
return slot
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
364
|
+
return slot.assignedNodes({ flatten: true }).some((node) => {
|
|
365
|
+
// Check for non-empty text nodes
|
|
366
|
+
if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()) {
|
|
367
|
+
return true;
|
|
368
|
+
}
|
|
369
|
+
// Check for element nodes
|
|
370
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
371
|
+
const element = node;
|
|
372
|
+
return this.hasElementContent(element);
|
|
373
|
+
}
|
|
374
|
+
return false;
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
hasElementContent(element) {
|
|
378
|
+
// Check if element has child nodes with meaningful content (light DOM)
|
|
379
|
+
const hasChildContent = Array.from(element.childNodes).some((child) => {
|
|
380
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
381
|
+
return child.textContent?.trim();
|
|
382
|
+
}
|
|
383
|
+
if (child.nodeType === Node.ELEMENT_NODE) {
|
|
384
|
+
const childElement = child;
|
|
385
|
+
// Check slot elements recursively - they may have assigned content
|
|
386
|
+
if (childElement.tagName.toLowerCase() === "slot") {
|
|
387
|
+
const slotElement = childElement;
|
|
388
|
+
const assignedNodes = slotElement.assignedNodes({ flatten: true });
|
|
389
|
+
return assignedNodes.some((node) => {
|
|
390
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
391
|
+
return node.textContent?.trim();
|
|
392
|
+
}
|
|
393
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
394
|
+
return this.hasElementContent(node);
|
|
395
|
+
}
|
|
396
|
+
return false;
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
return true;
|
|
400
|
+
}
|
|
401
|
+
return false;
|
|
402
|
+
});
|
|
403
|
+
if (hasChildContent) {
|
|
404
|
+
return true;
|
|
405
|
+
}
|
|
406
|
+
// If no light DOM children, check if element has shadow root (Shadow DOM content)
|
|
407
|
+
if (element.shadowRoot) {
|
|
408
|
+
return true;
|
|
409
|
+
}
|
|
410
|
+
// Check text content as fallback
|
|
411
|
+
const textContent = element.textContent?.trim();
|
|
412
|
+
return Boolean(textContent);
|
|
304
413
|
}
|
|
305
414
|
observeSlotContent() {
|
|
306
415
|
const updateSlotStates = () => {
|
|
307
|
-
const previousStates = new Map(
|
|
416
|
+
const previousStates = new Map(CDSAIChatShell_1.OBSERVED_SLOTS.map(({ stateKey }) => [
|
|
308
417
|
stateKey,
|
|
309
418
|
this[stateKey],
|
|
310
419
|
]));
|
|
311
|
-
|
|
420
|
+
CDSAIChatShell_1.OBSERVED_SLOTS.forEach(({ name, stateKey }) => {
|
|
312
421
|
this[stateKey] = this.hasSlotContent(name);
|
|
313
422
|
});
|
|
314
|
-
const hasChanged =
|
|
423
|
+
const hasChanged = CDSAIChatShell_1.OBSERVED_SLOTS.some(({ stateKey }) => previousStates.get(stateKey) !== this[stateKey]);
|
|
315
424
|
if (hasChanged) {
|
|
316
425
|
this.requestUpdate();
|
|
317
426
|
}
|
|
@@ -319,7 +428,7 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
319
428
|
// Initial check
|
|
320
429
|
updateSlotStates();
|
|
321
430
|
// Observe slot changes
|
|
322
|
-
const slots =
|
|
431
|
+
const slots = CDSAIChatShell_1.OBSERVED_SLOTS.map(({ name }) => this.renderRoot.querySelector(`slot[name="${name}"]`)).filter((slot) => slot !== null);
|
|
323
432
|
slots.forEach((slot) => {
|
|
324
433
|
slot.addEventListener("slotchange", updateSlotStates);
|
|
325
434
|
});
|
|
@@ -337,6 +446,7 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
337
446
|
roundedCorners: this.roundedCorners,
|
|
338
447
|
});
|
|
339
448
|
}
|
|
449
|
+
this.syncWorkspacePanelState();
|
|
340
450
|
this.panelManager?.refresh();
|
|
341
451
|
}
|
|
342
452
|
disconnectedCallback() {
|
|
@@ -346,6 +456,7 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
346
456
|
this.inputAndMessagesResizeObserver?.disconnect();
|
|
347
457
|
this.mainContentBodyResizeObserver?.disconnect();
|
|
348
458
|
this.cssPropertyObserver?.disconnect();
|
|
459
|
+
this.cancelWorkspacePanelOpenSchedule();
|
|
349
460
|
super.disconnectedCallback();
|
|
350
461
|
}
|
|
351
462
|
observeInputAndMessagesWidth() {
|
|
@@ -368,20 +479,23 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
368
479
|
updateAtMaxWidth(rect.width);
|
|
369
480
|
};
|
|
370
481
|
this.inputAndMessagesResizeObserver = new ResizeObserver((entries) => {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
482
|
+
// Use requestAnimationFrame to avoid ResizeObserver loop errors
|
|
483
|
+
requestAnimationFrame(() => {
|
|
484
|
+
for (const entry of entries) {
|
|
485
|
+
if (entry.target !== this) {
|
|
486
|
+
continue;
|
|
487
|
+
}
|
|
488
|
+
const borderBoxSize = Array.isArray(entry.borderBoxSize)
|
|
489
|
+
? entry.borderBoxSize[0]
|
|
490
|
+
: entry.borderBoxSize;
|
|
491
|
+
if (borderBoxSize?.inlineSize) {
|
|
492
|
+
updateAtMaxWidth(borderBoxSize.inlineSize);
|
|
493
|
+
}
|
|
494
|
+
else {
|
|
495
|
+
updateAtMaxWidth(entry.contentRect.width);
|
|
496
|
+
}
|
|
383
497
|
}
|
|
384
|
-
}
|
|
498
|
+
});
|
|
385
499
|
});
|
|
386
500
|
this.inputAndMessagesResizeObserver.observe(this);
|
|
387
501
|
measure();
|
|
@@ -405,20 +519,23 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
405
519
|
}
|
|
406
520
|
};
|
|
407
521
|
this.mainContentBodyResizeObserver = new ResizeObserver((entries) => {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
522
|
+
// Use requestAnimationFrame to avoid ResizeObserver loop errors
|
|
523
|
+
requestAnimationFrame(() => {
|
|
524
|
+
for (const entry of entries) {
|
|
525
|
+
if (entry.target !== mainContentBody) {
|
|
526
|
+
continue;
|
|
527
|
+
}
|
|
528
|
+
const borderBoxSize = Array.isArray(entry.borderBoxSize)
|
|
529
|
+
? entry.borderBoxSize[0]
|
|
530
|
+
: entry.borderBoxSize;
|
|
531
|
+
if (borderBoxSize?.inlineSize) {
|
|
532
|
+
updateHistoryVisibility(borderBoxSize.inlineSize);
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
updateHistoryVisibility(entry.contentRect.width);
|
|
536
|
+
}
|
|
417
537
|
}
|
|
418
|
-
|
|
419
|
-
updateHistoryVisibility(entry.contentRect.width);
|
|
420
|
-
}
|
|
421
|
-
}
|
|
538
|
+
});
|
|
422
539
|
});
|
|
423
540
|
this.mainContentBodyResizeObserver.observe(mainContentBody);
|
|
424
541
|
// Initial measurement
|
|
@@ -449,27 +566,30 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
449
566
|
return;
|
|
450
567
|
}
|
|
451
568
|
const updateHeight = (height) => {
|
|
452
|
-
this.style.setProperty("--cds-aichat
|
|
569
|
+
this.style.setProperty("--cds-aichat-header-height", `${height}px`);
|
|
453
570
|
};
|
|
454
571
|
const measure = () => {
|
|
455
572
|
const rect = headerWrapper.getBoundingClientRect();
|
|
456
573
|
updateHeight(rect.height);
|
|
457
574
|
};
|
|
458
575
|
this.headerResizeObserver = new ResizeObserver((entries) => {
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
576
|
+
// Use requestAnimationFrame to avoid ResizeObserver loop errors
|
|
577
|
+
requestAnimationFrame(() => {
|
|
578
|
+
for (const entry of entries) {
|
|
579
|
+
if (entry.target !== headerWrapper) {
|
|
580
|
+
continue;
|
|
581
|
+
}
|
|
582
|
+
const borderBoxSize = Array.isArray(entry.borderBoxSize)
|
|
583
|
+
? entry.borderBoxSize[0]
|
|
584
|
+
: entry.borderBoxSize;
|
|
585
|
+
if (borderBoxSize?.blockSize) {
|
|
586
|
+
updateHeight(borderBoxSize.blockSize);
|
|
587
|
+
}
|
|
588
|
+
else {
|
|
589
|
+
updateHeight(entry.contentRect.height);
|
|
590
|
+
}
|
|
462
591
|
}
|
|
463
|
-
|
|
464
|
-
? entry.borderBoxSize[0]
|
|
465
|
-
: entry.borderBoxSize;
|
|
466
|
-
if (borderBoxSize?.blockSize) {
|
|
467
|
-
updateHeight(borderBoxSize.blockSize);
|
|
468
|
-
}
|
|
469
|
-
else {
|
|
470
|
-
updateHeight(entry.contentRect.height);
|
|
471
|
-
}
|
|
472
|
-
}
|
|
592
|
+
});
|
|
473
593
|
});
|
|
474
594
|
this.headerResizeObserver.observe(headerWrapper);
|
|
475
595
|
measure();
|
|
@@ -509,46 +629,127 @@ let CdsAiChatShell = CdsAiChatShell_1 = class CdsAiChatShell extends LitElement
|
|
|
509
629
|
}
|
|
510
630
|
}
|
|
511
631
|
}
|
|
632
|
+
syncWorkspacePanelState() {
|
|
633
|
+
const shouldRenderPanel = this.workspaceManager?.shouldRenderPanel() ?? false;
|
|
634
|
+
const workspaceState = this.workspaceManager?.getState();
|
|
635
|
+
if (shouldRenderPanel && !this.lastShouldRenderWorkspacePanel) {
|
|
636
|
+
// Suppress animation when switching from inline container to panel
|
|
637
|
+
// (workspace was visible inline and now moving to panel)
|
|
638
|
+
const shouldSuppressAnimation = !this.lastWorkspaceInPanel && this.lastWorkspaceContainerVisible;
|
|
639
|
+
// IMPORTANT: Set the flag BEFORE updating state that triggers render
|
|
640
|
+
this.suppressWorkspacePanelOpenAnimation = shouldSuppressAnimation;
|
|
641
|
+
// Now update the state
|
|
642
|
+
this.workspacePanelRendering = true;
|
|
643
|
+
this.workspacePanelOpen = false;
|
|
644
|
+
this.cancelWorkspacePanelOpenSchedule();
|
|
645
|
+
// Request update to render the panel with the correct animation attribute
|
|
646
|
+
this.requestUpdate();
|
|
647
|
+
// Schedule opening after the panel is rendered
|
|
648
|
+
this.scheduleWorkspacePanelOpen();
|
|
649
|
+
}
|
|
650
|
+
else if (!shouldRenderPanel && this.lastShouldRenderWorkspacePanel) {
|
|
651
|
+
// Suppress animation when switching from panel to inline container
|
|
652
|
+
// (workspace was in panel and now moving to inline)
|
|
653
|
+
const shouldSuppressAnimation = this.lastWorkspaceInPanel &&
|
|
654
|
+
(workspaceState?.containerVisible ?? false);
|
|
655
|
+
console.log("[syncWorkspacePanelState] CLOSING PANEL", {
|
|
656
|
+
shouldSuppressAnimation,
|
|
657
|
+
});
|
|
658
|
+
this.suppressWorkspacePanelCloseAnimation = shouldSuppressAnimation;
|
|
659
|
+
this.cancelWorkspacePanelOpenSchedule();
|
|
660
|
+
if (this.workspacePanelOpen) {
|
|
661
|
+
this.workspacePanelOpen = false;
|
|
662
|
+
this.requestUpdate();
|
|
663
|
+
}
|
|
664
|
+
else {
|
|
665
|
+
this.workspacePanelRendering = false;
|
|
666
|
+
this.requestUpdate();
|
|
667
|
+
}
|
|
668
|
+
this.suppressWorkspacePanelOpenAnimation = false;
|
|
669
|
+
}
|
|
670
|
+
this.lastShouldRenderWorkspacePanel = shouldRenderPanel;
|
|
671
|
+
this.lastWorkspaceInPanel = workspaceState?.inPanel ?? false;
|
|
672
|
+
this.lastWorkspaceContainerVisible =
|
|
673
|
+
workspaceState?.containerVisible ?? false;
|
|
674
|
+
}
|
|
675
|
+
scheduleWorkspacePanelOpen() {
|
|
676
|
+
if (this.workspacePanelOpenScheduled) {
|
|
677
|
+
return;
|
|
678
|
+
}
|
|
679
|
+
this.workspacePanelOpenScheduled = true;
|
|
680
|
+
if (typeof window === "undefined") {
|
|
681
|
+
this.workspacePanelOpenScheduled = false;
|
|
682
|
+
this.workspacePanelOpen = true;
|
|
683
|
+
return;
|
|
684
|
+
}
|
|
685
|
+
// Use double RAF to ensure the panel element is fully rendered with correct attributes
|
|
686
|
+
this.workspacePanelOpenRafId = window.requestAnimationFrame(() => {
|
|
687
|
+
this.workspacePanelOpenRafId = window.requestAnimationFrame(() => {
|
|
688
|
+
this.workspacePanelOpenRafId = null;
|
|
689
|
+
this.workspacePanelOpenScheduled = false;
|
|
690
|
+
if (!this.workspaceManager?.shouldRenderPanel()) {
|
|
691
|
+
return;
|
|
692
|
+
}
|
|
693
|
+
this.workspacePanelOpen = true;
|
|
694
|
+
this.requestUpdate();
|
|
695
|
+
});
|
|
696
|
+
});
|
|
697
|
+
}
|
|
698
|
+
cancelWorkspacePanelOpenSchedule() {
|
|
699
|
+
if (this.workspacePanelOpenRafId !== null &&
|
|
700
|
+
typeof window !== "undefined") {
|
|
701
|
+
window.cancelAnimationFrame(this.workspacePanelOpenRafId);
|
|
702
|
+
}
|
|
703
|
+
this.workspacePanelOpenRafId = null;
|
|
704
|
+
this.workspacePanelOpenScheduled = false;
|
|
705
|
+
}
|
|
512
706
|
};
|
|
513
|
-
|
|
707
|
+
CDSAIChatShell.styles = styles;
|
|
514
708
|
/**
|
|
515
709
|
* @internal
|
|
516
710
|
*/
|
|
517
|
-
|
|
711
|
+
CDSAIChatShell.OBSERVED_SLOTS = [
|
|
518
712
|
{ name: "header", stateKey: "hasHeaderContent" },
|
|
519
713
|
{ name: "header-after", stateKey: "hasHeaderAfterContent" },
|
|
520
|
-
{ name: "messages-before", stateKey: "hasMessagesBeforeContent" },
|
|
521
714
|
{ name: "footer", stateKey: "hasFooterContent" },
|
|
522
715
|
{ name: "input-after", stateKey: "hasInputAfterContent" },
|
|
523
716
|
{ name: "input", stateKey: "hasInputContent" },
|
|
524
717
|
{ name: "input-before", stateKey: "hasInputBeforeContent" },
|
|
525
|
-
{ name: "messages-after", stateKey: "hasMessagesAfterContent" },
|
|
526
718
|
];
|
|
527
719
|
__decorate([
|
|
528
720
|
property({ type: Boolean, attribute: "ai-enabled", reflect: true })
|
|
529
|
-
],
|
|
721
|
+
], CDSAIChatShell.prototype, "aiEnabled", void 0);
|
|
530
722
|
__decorate([
|
|
531
723
|
property({ type: Boolean, attribute: "show-frame", reflect: true })
|
|
532
|
-
],
|
|
724
|
+
], CDSAIChatShell.prototype, "showFrame", void 0);
|
|
533
725
|
__decorate([
|
|
534
726
|
property({ type: Boolean, attribute: "rounded-corners", reflect: true })
|
|
535
|
-
],
|
|
727
|
+
], CDSAIChatShell.prototype, "roundedCorners", void 0);
|
|
536
728
|
__decorate([
|
|
537
729
|
property({ type: Boolean, attribute: "show-history", reflect: true })
|
|
538
|
-
],
|
|
730
|
+
], CDSAIChatShell.prototype, "showHistory", void 0);
|
|
539
731
|
__decorate([
|
|
540
732
|
property({ type: Boolean, attribute: "show-workspace", reflect: true })
|
|
541
|
-
],
|
|
733
|
+
], CDSAIChatShell.prototype, "showWorkspace", void 0);
|
|
542
734
|
__decorate([
|
|
543
735
|
property({ type: String, attribute: "workspace-location", reflect: true })
|
|
544
|
-
],
|
|
736
|
+
], CDSAIChatShell.prototype, "workspaceLocation", void 0);
|
|
545
737
|
__decorate([
|
|
546
738
|
property({ type: String, attribute: "history-location", reflect: true })
|
|
547
|
-
],
|
|
548
|
-
|
|
739
|
+
], CDSAIChatShell.prototype, "historyLocation", void 0);
|
|
740
|
+
__decorate([
|
|
741
|
+
property({ type: String, attribute: "workspace-aria-label" })
|
|
742
|
+
], CDSAIChatShell.prototype, "workspaceAriaLabel", void 0);
|
|
743
|
+
__decorate([
|
|
744
|
+
property({ type: String, attribute: "history-aria-label" })
|
|
745
|
+
], CDSAIChatShell.prototype, "historyAriaLabel", void 0);
|
|
746
|
+
__decorate([
|
|
747
|
+
property({ type: String, attribute: "messages-aria-label" })
|
|
748
|
+
], CDSAIChatShell.prototype, "messagesAriaLabel", void 0);
|
|
749
|
+
CDSAIChatShell = CDSAIChatShell_1 = __decorate([
|
|
549
750
|
carbonElement("cds-aichat-shell")
|
|
550
|
-
],
|
|
551
|
-
var
|
|
751
|
+
], CDSAIChatShell);
|
|
752
|
+
var CDSChatShellElement = CDSAIChatShell;
|
|
552
753
|
|
|
553
|
-
export {
|
|
554
|
-
//# sourceMappingURL=
|
|
754
|
+
export { CDSChatShellElement as default };
|
|
755
|
+
//# sourceMappingURL=shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.js","sources":["../../../../src/components/chat-shell/src/shell.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|