@carbon/ai-chat-components 0.7.1 → 0.8.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 +4 -1
- package/custom-elements.json +1705 -467
- package/es/components/card/src/card-footer.d.ts +1 -0
- package/es/components/card/src/card-footer.js +3 -2
- package/es/components/card/src/card-footer.js.map +1 -1
- package/es/components/card/src/card-footer.scss.js +1 -1
- package/es/components/card/src/card-steps.d.ts +1 -0
- package/es/components/card/src/card-steps.js +2 -1
- package/es/components/card/src/card-steps.js.map +1 -1
- package/es/components/card/src/card.d.ts +1 -0
- package/es/components/card/src/card.js +3 -1
- package/es/components/card/src/card.js.map +1 -1
- package/es/components/card/src/card.scss.js +1 -1
- package/es/components/chain-of-thought/src/chain-of-thought-step.d.ts +4 -0
- package/es/components/chain-of-thought/src/chain-of-thought-step.js +5 -1
- package/es/components/chain-of-thought/src/chain-of-thought-step.js.map +1 -1
- package/es/components/chain-of-thought/src/chain-of-thought-toggle.d.ts +4 -0
- package/es/components/chain-of-thought/src/chain-of-thought-toggle.js +5 -1
- package/es/components/chain-of-thought/src/chain-of-thought-toggle.js.map +1 -1
- package/es/components/chain-of-thought/src/chain-of-thought.d.ts +4 -0
- package/es/components/chain-of-thought/src/chain-of-thought.js +5 -1
- package/es/components/chain-of-thought/src/chain-of-thought.js.map +1 -1
- package/es/components/chain-of-thought/src/tool-call-data.d.ts +4 -0
- package/es/components/chain-of-thought/src/tool-call-data.js +5 -1
- package/es/components/chain-of-thought/src/tool-call-data.js.map +1 -1
- package/es/components/chat-button/src/chat-button.js +4 -3
- package/es/components/chat-button/src/chat-button.js.map +1 -1
- package/es/components/chat-shell/index.d.ts +10 -0
- package/es/{node_modules/@carbon/utilities/es/documentLang/documentLang.js → components/chat-shell/index.js} +3 -2
- package/es/components/chat-shell/index.js.map +1 -0
- package/es/components/chat-shell/src/cds-aichat-panel.d.ts +66 -0
- package/es/components/chat-shell/src/cds-aichat-panel.js +433 -0
- package/es/components/chat-shell/src/cds-aichat-panel.js.map +1 -0
- package/es/components/chat-shell/src/cds-aichat-panel.scss.js +13 -0
- package/es/components/chat-shell/src/cds-aichat-panel.scss.js.map +1 -0
- package/es/components/chat-shell/src/cds-aichat-shell.d.ts +73 -0
- package/es/components/chat-shell/src/cds-aichat-shell.js +554 -0
- package/es/components/chat-shell/src/cds-aichat-shell.js.map +1 -0
- package/es/components/chat-shell/src/cds-aichat-shell.scss.js +13 -0
- package/es/components/chat-shell/src/cds-aichat-shell.scss.js.map +1 -0
- package/es/components/chat-shell/src/panel-manager.d.ts +29 -0
- package/es/components/chat-shell/src/panel-manager.js +144 -0
- package/es/components/chat-shell/src/panel-manager.js.map +1 -0
- package/es/components/chat-shell/src/workspace-manager.d.ts +118 -0
- package/es/components/chat-shell/src/workspace-manager.js +465 -0
- package/es/components/chat-shell/src/workspace-manager.js.map +1 -0
- package/es/components/code-snippet/src/code-snippet-card.js +2 -1
- package/es/components/code-snippet/src/code-snippet-card.js.map +1 -1
- package/es/components/code-snippet/src/code-snippet.d.ts +1 -0
- package/es/components/code-snippet/src/code-snippet.js +3 -1
- package/es/components/code-snippet/src/code-snippet.js.map +1 -1
- package/es/components/code-snippet/src/code-snippet.scss.js +1 -1
- package/es/components/feedback/src/feedback-buttons.d.ts +4 -0
- package/es/components/feedback/src/feedback-buttons.js +6 -1
- package/es/components/feedback/src/feedback-buttons.js.map +1 -1
- package/es/components/feedback/src/feedback.d.ts +1 -0
- package/es/components/feedback/src/feedback.js +3 -1
- package/es/components/feedback/src/feedback.js.map +1 -1
- package/es/components/feedback/src/feedback.scss.js +1 -1
- package/es/components/markdown/src/markdown-token-tree.js +1 -1
- package/es/components/markdown/src/markdown.d.ts +4 -0
- package/es/components/markdown/src/markdown.js +6 -1
- package/es/components/markdown/src/markdown.js.map +1 -1
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/code.js +1 -1
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/inline.js +1 -1
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/lists.js +1 -1
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/tables.js +1 -1
- package/es/components/processing/src/processing.d.ts +4 -0
- package/es/components/processing/src/processing.js +6 -1
- package/es/components/processing/src/processing.js.map +1 -1
- package/es/components/reasoning-steps/src/reasoning-step.d.ts +4 -0
- package/es/components/reasoning-steps/src/reasoning-step.js +5 -1
- package/es/components/reasoning-steps/src/reasoning-step.js.map +1 -1
- package/es/components/reasoning-steps/src/reasoning-steps-toggle.d.ts +4 -0
- package/es/components/reasoning-steps/src/reasoning-steps-toggle.js +6 -1
- package/es/components/reasoning-steps/src/reasoning-steps-toggle.js.map +1 -1
- package/es/components/reasoning-steps/src/reasoning-steps.d.ts +4 -0
- package/es/components/reasoning-steps/src/reasoning-steps.js +5 -1
- package/es/components/reasoning-steps/src/reasoning-steps.js.map +1 -1
- package/es/components/table/src/table.d.ts +1 -0
- package/es/components/table/src/table.js +5 -3
- package/es/components/table/src/table.js.map +1 -1
- package/es/components/table/src/table.template.js +2 -2
- package/es/components/table/src/table.template.js.map +1 -1
- package/es/components/toolbar/src/toolbar.js +3 -4
- 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-body.js +2 -1
- package/es/components/workspace-shell/src/workspace-shell-body.js.map +1 -1
- package/es/components/workspace-shell/src/workspace-shell-footer.js +2 -2
- 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-header.js +2 -2
- package/es/components/workspace-shell/src/workspace-shell-header.js.map +1 -1
- package/es/components/workspace-shell/src/workspace-shell.js +2 -1
- 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/__tests__/jest.setup.js +83 -0
- package/es/react/__tests__/jest.setup.js.map +1 -0
- package/es/react/chat-shell.d.ts +12 -0
- package/es/react/chat-shell.js +28 -0
- package/es/react/chat-shell.js.map +1 -0
- package/es/react/panel.d.ts +4 -0
- package/{es-custom/react/inline-notification.js → es/react/panel.js} +12 -6
- package/es/react/panel.js.map +1 -0
- package/es/react/toolbar.d.ts +14 -2
- package/es/react/toolbar.js +59 -9
- package/es/react/toolbar.js.map +1 -1
- package/es/react/utils/iconTransform.d.ts +37 -0
- package/es/react/utils/iconTransform.js +176 -0
- package/es/react/utils/iconTransform.js.map +1 -0
- package/es-custom/components/card/src/card-footer.d.ts +1 -0
- package/es-custom/components/card/src/card-footer.js +3 -2
- package/es-custom/components/card/src/card-footer.js.map +1 -1
- package/es-custom/components/card/src/card-footer.scss.js +1 -1
- package/es-custom/components/card/src/card-steps.d.ts +1 -0
- package/es-custom/components/card/src/card-steps.js +2 -1
- package/es-custom/components/card/src/card-steps.js.map +1 -1
- package/es-custom/components/card/src/card.d.ts +1 -0
- package/es-custom/components/card/src/card.js +3 -1
- package/es-custom/components/card/src/card.js.map +1 -1
- package/es-custom/components/card/src/card.scss.js +1 -1
- package/es-custom/components/chain-of-thought/src/chain-of-thought-step.d.ts +4 -0
- package/es-custom/components/chain-of-thought/src/chain-of-thought-step.js +5 -1
- package/es-custom/components/chain-of-thought/src/chain-of-thought-step.js.map +1 -1
- package/es-custom/components/chain-of-thought/src/chain-of-thought-toggle.d.ts +4 -0
- package/es-custom/components/chain-of-thought/src/chain-of-thought-toggle.js +5 -1
- package/es-custom/components/chain-of-thought/src/chain-of-thought-toggle.js.map +1 -1
- package/es-custom/components/chain-of-thought/src/chain-of-thought.d.ts +4 -0
- package/es-custom/components/chain-of-thought/src/chain-of-thought.js +5 -1
- package/es-custom/components/chain-of-thought/src/chain-of-thought.js.map +1 -1
- package/es-custom/components/chain-of-thought/src/tool-call-data.d.ts +4 -0
- package/es-custom/components/chain-of-thought/src/tool-call-data.js +5 -1
- package/es-custom/components/chain-of-thought/src/tool-call-data.js.map +1 -1
- package/es-custom/components/chat-button/src/chat-button.js +4 -3
- package/es-custom/components/chat-button/src/chat-button.js.map +1 -1
- package/es-custom/components/chat-shell/index.d.ts +10 -0
- package/es-custom/{node_modules/@carbon/utilities/es/documentLang/documentLang.js → components/chat-shell/index.js} +3 -2
- package/es-custom/components/chat-shell/index.js.map +1 -0
- package/es-custom/components/chat-shell/src/cds-aichat-panel.d.ts +66 -0
- package/es-custom/components/chat-shell/src/cds-aichat-panel.js +433 -0
- package/es-custom/components/chat-shell/src/cds-aichat-panel.js.map +1 -0
- package/es-custom/components/chat-shell/src/cds-aichat-panel.scss.js +13 -0
- package/es-custom/components/chat-shell/src/cds-aichat-panel.scss.js.map +1 -0
- package/es-custom/components/chat-shell/src/cds-aichat-shell.d.ts +73 -0
- package/es-custom/components/chat-shell/src/cds-aichat-shell.js +554 -0
- package/es-custom/components/chat-shell/src/cds-aichat-shell.js.map +1 -0
- package/es-custom/components/chat-shell/src/cds-aichat-shell.scss.js +13 -0
- package/es-custom/components/chat-shell/src/cds-aichat-shell.scss.js.map +1 -0
- package/es-custom/components/chat-shell/src/panel-manager.d.ts +29 -0
- package/es-custom/components/chat-shell/src/panel-manager.js +144 -0
- package/es-custom/components/chat-shell/src/panel-manager.js.map +1 -0
- package/es-custom/components/chat-shell/src/workspace-manager.d.ts +118 -0
- package/es-custom/components/chat-shell/src/workspace-manager.js +465 -0
- package/es-custom/components/chat-shell/src/workspace-manager.js.map +1 -0
- package/es-custom/components/code-snippet/src/code-snippet-card.js +2 -1
- package/es-custom/components/code-snippet/src/code-snippet-card.js.map +1 -1
- package/es-custom/components/code-snippet/src/code-snippet.d.ts +1 -0
- package/es-custom/components/code-snippet/src/code-snippet.js +3 -1
- package/es-custom/components/code-snippet/src/code-snippet.js.map +1 -1
- package/es-custom/components/code-snippet/src/code-snippet.scss.js +1 -1
- package/es-custom/components/feedback/src/feedback-buttons.d.ts +4 -0
- package/es-custom/components/feedback/src/feedback-buttons.js +6 -1
- package/es-custom/components/feedback/src/feedback-buttons.js.map +1 -1
- package/es-custom/components/feedback/src/feedback.d.ts +1 -0
- package/es-custom/components/feedback/src/feedback.js +3 -1
- package/es-custom/components/feedback/src/feedback.js.map +1 -1
- package/es-custom/components/feedback/src/feedback.scss.js +1 -1
- package/es-custom/components/markdown/src/markdown-token-tree.js +1 -1
- package/es-custom/components/markdown/src/markdown.d.ts +4 -0
- package/es-custom/components/markdown/src/markdown.js +6 -1
- package/es-custom/components/markdown/src/markdown.js.map +1 -1
- package/es-custom/components/markdown/src/plugins/markdownItAttrs/patterns/code.js +1 -1
- package/es-custom/components/markdown/src/plugins/markdownItAttrs/patterns/inline.js +1 -1
- package/es-custom/components/markdown/src/plugins/markdownItAttrs/patterns/lists.js +1 -1
- package/es-custom/components/markdown/src/plugins/markdownItAttrs/patterns/tables.js +1 -1
- package/es-custom/components/processing/src/processing.d.ts +4 -0
- package/es-custom/components/processing/src/processing.js +6 -1
- package/es-custom/components/processing/src/processing.js.map +1 -1
- package/es-custom/components/reasoning-steps/src/reasoning-step.d.ts +4 -0
- package/es-custom/components/reasoning-steps/src/reasoning-step.js +5 -1
- package/es-custom/components/reasoning-steps/src/reasoning-step.js.map +1 -1
- package/es-custom/components/reasoning-steps/src/reasoning-steps-toggle.d.ts +4 -0
- package/es-custom/components/reasoning-steps/src/reasoning-steps-toggle.js +6 -1
- package/es-custom/components/reasoning-steps/src/reasoning-steps-toggle.js.map +1 -1
- package/es-custom/components/reasoning-steps/src/reasoning-steps.d.ts +4 -0
- package/es-custom/components/reasoning-steps/src/reasoning-steps.js +5 -1
- package/es-custom/components/reasoning-steps/src/reasoning-steps.js.map +1 -1
- package/es-custom/components/table/src/table.d.ts +1 -0
- package/es-custom/components/table/src/table.js +5 -3
- package/es-custom/components/table/src/table.js.map +1 -1
- package/es-custom/components/table/src/table.template.js +2 -2
- package/es-custom/components/table/src/table.template.js.map +1 -1
- package/es-custom/components/toolbar/src/toolbar.js +3 -4
- 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-body.js +2 -1
- package/es-custom/components/workspace-shell/src/workspace-shell-body.js.map +1 -1
- package/es-custom/components/workspace-shell/src/workspace-shell-footer.js +2 -2
- 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-header.js +2 -2
- package/es-custom/components/workspace-shell/src/workspace-shell-header.js.map +1 -1
- package/es-custom/components/workspace-shell/src/workspace-shell.js +2 -1
- 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/__tests__/jest.setup.js +83 -0
- package/es-custom/react/__tests__/jest.setup.js.map +1 -0
- package/es-custom/react/chat-shell.d.ts +12 -0
- package/es-custom/react/chat-shell.js +28 -0
- package/es-custom/react/chat-shell.js.map +1 -0
- package/es-custom/react/panel.d.ts +4 -0
- package/es-custom/react/{ai-label.js → panel.js} +12 -6
- package/es-custom/react/panel.js.map +1 -0
- package/es-custom/react/toolbar.d.ts +14 -2
- package/es-custom/react/toolbar.js +59 -9
- package/es-custom/react/toolbar.js.map +1 -1
- package/es-custom/react/utils/iconTransform.d.ts +37 -0
- package/es-custom/react/utils/iconTransform.js +176 -0
- package/es-custom/react/utils/iconTransform.js.map +1 -0
- package/package.json +21 -6
- package/telemetry.yml +125 -2
- package/es/node_modules/@carbon/utilities/es/documentLang/documentLang.js.map +0 -1
- package/es/node_modules/@carbon/utilities/es/overflowHandler/overflowHandler.js +0 -11
- package/es/node_modules/@carbon/utilities/es/overflowHandler/overflowHandler.js.map +0 -1
- package/es/react/ai-label.d.ts +0 -4
- package/es/react/ai-label.js +0 -28
- package/es/react/ai-label.js.map +0 -1
- package/es/react/button.d.ts +0 -6
- package/es/react/button.js +0 -29
- package/es/react/button.js.map +0 -1
- package/es/react/content-switcher.d.ts +0 -7
- package/es/react/content-switcher.js +0 -37
- package/es/react/content-switcher.js.map +0 -1
- package/es/react/icon-button.d.ts +0 -4
- package/es/react/icon-button.js +0 -28
- package/es/react/icon-button.js.map +0 -1
- package/es/react/icon.d.ts +0 -4
- package/es/react/icon.js +0 -28
- package/es/react/icon.js.map +0 -1
- package/es/react/inline-notification.d.ts +0 -4
- package/es/react/inline-notification.js +0 -28
- package/es/react/inline-notification.js.map +0 -1
- package/es/react/overflow-menu.d.ts +0 -9
- package/es/react/overflow-menu.js +0 -40
- package/es/react/overflow-menu.js.map +0 -1
- package/es/react/tag.d.ts +0 -4
- package/es/react/tag.js +0 -28
- package/es/react/tag.js.map +0 -1
- package/es/react/tile.d.ts +0 -7
- package/es/react/tile.js +0 -34
- package/es/react/tile.js.map +0 -1
- package/es-custom/node_modules/@carbon/utilities/es/documentLang/documentLang.js.map +0 -1
- package/es-custom/node_modules/@carbon/utilities/es/overflowHandler/overflowHandler.js +0 -11
- package/es-custom/node_modules/@carbon/utilities/es/overflowHandler/overflowHandler.js.map +0 -1
- package/es-custom/react/ai-label.d.ts +0 -4
- package/es-custom/react/ai-label.js.map +0 -1
- package/es-custom/react/button.d.ts +0 -6
- package/es-custom/react/button.js +0 -29
- package/es-custom/react/button.js.map +0 -1
- package/es-custom/react/content-switcher.d.ts +0 -7
- package/es-custom/react/content-switcher.js +0 -37
- package/es-custom/react/content-switcher.js.map +0 -1
- package/es-custom/react/icon-button.d.ts +0 -4
- package/es-custom/react/icon-button.js +0 -28
- package/es-custom/react/icon-button.js.map +0 -1
- package/es-custom/react/icon.d.ts +0 -4
- package/es-custom/react/icon.js +0 -28
- package/es-custom/react/icon.js.map +0 -1
- package/es-custom/react/inline-notification.d.ts +0 -4
- package/es-custom/react/inline-notification.js.map +0 -1
- package/es-custom/react/overflow-menu.d.ts +0 -9
- package/es-custom/react/overflow-menu.js +0 -40
- package/es-custom/react/overflow-menu.js.map +0 -1
- package/es-custom/react/tag.d.ts +0 -4
- package/es-custom/react/tag.js +0 -28
- package/es-custom/react/tag.js.map +0 -1
- package/es-custom/react/tile.d.ts +0 -7
- package/es-custom/react/tile.js +0 -34
- package/es-custom/react/tile.js.map +0 -1
|
@@ -5,5 +5,6 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
import './src/cds-aichat-shell.js';
|
|
9
|
+
import './src/cds-aichat-panel.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*
|
|
4
|
+
* Copyright IBM Corp. 2025
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import { LitElement, PropertyValues } from "lit";
|
|
10
|
+
declare class CdsAiChatPanel extends LitElement {
|
|
11
|
+
static styles: any;
|
|
12
|
+
/**
|
|
13
|
+
* Controls whether the panel is open or closed
|
|
14
|
+
*/
|
|
15
|
+
open: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Sets the stacking priority of the panel (higher values appear on top)
|
|
18
|
+
*/
|
|
19
|
+
priority: number;
|
|
20
|
+
/**
|
|
21
|
+
* Makes the panel take up the full width of its container
|
|
22
|
+
*/
|
|
23
|
+
fullWidth: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Shows the chat header in the panel
|
|
26
|
+
*/
|
|
27
|
+
showChatHeader: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Shows a frame border around the panel
|
|
30
|
+
*/
|
|
31
|
+
showFrame: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Specifies the animation to use when opening the panel
|
|
34
|
+
*/
|
|
35
|
+
animationOnOpen?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Specifies the animation to use when closing the panel
|
|
38
|
+
*/
|
|
39
|
+
animationOnClose?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Makes the panel inert (non-interactive)
|
|
42
|
+
*/
|
|
43
|
+
inert: boolean;
|
|
44
|
+
connectedCallback(): void;
|
|
45
|
+
disconnectedCallback(): void;
|
|
46
|
+
protected firstUpdated(changedProps: PropertyValues): void;
|
|
47
|
+
protected updated(changedProperties: PropertyValues): void;
|
|
48
|
+
private updateVisibilityState;
|
|
49
|
+
private openPanel;
|
|
50
|
+
private closePanel;
|
|
51
|
+
private completeOpen;
|
|
52
|
+
private completeClose;
|
|
53
|
+
private updateHostClasses;
|
|
54
|
+
private updateAnimationClass;
|
|
55
|
+
private shouldWaitForAnimation;
|
|
56
|
+
private scheduleAnimationFallback;
|
|
57
|
+
private clearAnimationFallback;
|
|
58
|
+
private setupResizeObserver;
|
|
59
|
+
private cleanupResizeObserver;
|
|
60
|
+
private getMessagesMaxWidth;
|
|
61
|
+
private updateWidthClass;
|
|
62
|
+
private hasSlotContent;
|
|
63
|
+
private observeSlotContent;
|
|
64
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
65
|
+
}
|
|
66
|
+
export default CdsAiChatPanel;
|
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2025
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { __decorate } from 'tslib';
|
|
9
|
+
import { LitElement, html } from 'lit';
|
|
10
|
+
import { property } from 'lit/decorators.js';
|
|
11
|
+
import { carbonElement } from '../../../globals/decorators/carbon-element.js';
|
|
12
|
+
import styles from './cds-aichat-panel.scss.js';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @license
|
|
16
|
+
*
|
|
17
|
+
* Copyright IBM Corp. 2025
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
20
|
+
* LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/
|
|
22
|
+
var CdsAiChatPanel_1;
|
|
23
|
+
const ANIMATION_START_DETECTION_DELAY_MS = 120;
|
|
24
|
+
const MESSAGES_MAX_WIDTH_FALLBACK = 672; // Fallback if CSS custom property is not set
|
|
25
|
+
let CdsAiChatPanel = CdsAiChatPanel_1 = class CdsAiChatPanel extends LitElement {
|
|
26
|
+
constructor() {
|
|
27
|
+
super(...arguments);
|
|
28
|
+
/**
|
|
29
|
+
* Controls whether the panel is open or closed
|
|
30
|
+
*/
|
|
31
|
+
this.open = false;
|
|
32
|
+
/**
|
|
33
|
+
* Sets the stacking priority of the panel (higher values appear on top)
|
|
34
|
+
*/
|
|
35
|
+
this.priority = 0;
|
|
36
|
+
/**
|
|
37
|
+
* Makes the panel take up the full width of its container
|
|
38
|
+
*/
|
|
39
|
+
this.fullWidth = false;
|
|
40
|
+
/**
|
|
41
|
+
* Shows the chat header in the panel
|
|
42
|
+
*/
|
|
43
|
+
this.showChatHeader = false;
|
|
44
|
+
/**
|
|
45
|
+
* Shows a frame border around the panel
|
|
46
|
+
*/
|
|
47
|
+
this.showFrame = false;
|
|
48
|
+
/**
|
|
49
|
+
* Makes the panel inert (non-interactive)
|
|
50
|
+
*/
|
|
51
|
+
this.inert = false;
|
|
52
|
+
/**
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
this.pendingAnimation = null;
|
|
56
|
+
/**
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
this.animationStarted = false;
|
|
60
|
+
/**
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
this.animationFallbackId = null;
|
|
64
|
+
/**
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
this.animationState = "closed";
|
|
68
|
+
/**
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
this.hasHeaderContent = false;
|
|
72
|
+
/**
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
this.hasBodyContent = false;
|
|
76
|
+
/**
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
this.hasFooterContent = false;
|
|
80
|
+
/**
|
|
81
|
+
* @internal
|
|
82
|
+
*/
|
|
83
|
+
this.handleAnimationStart = (event) => {
|
|
84
|
+
if (event.target !== this) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.animationStarted = true;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* @internal
|
|
91
|
+
*/
|
|
92
|
+
this.handleAnimationEnd = (event) => {
|
|
93
|
+
if (event.target !== this) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (this.pendingAnimation === "opening" &&
|
|
97
|
+
this.animationState === "opening") {
|
|
98
|
+
this.completeOpen();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (this.pendingAnimation === "closing" &&
|
|
102
|
+
this.animationState === "closing") {
|
|
103
|
+
this.completeClose();
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
connectedCallback() {
|
|
108
|
+
super.connectedCallback();
|
|
109
|
+
this.classList.add("panel", "panel-container");
|
|
110
|
+
this.addEventListener("animationstart", this.handleAnimationStart);
|
|
111
|
+
this.addEventListener("animationend", this.handleAnimationEnd);
|
|
112
|
+
this.setupResizeObserver();
|
|
113
|
+
}
|
|
114
|
+
disconnectedCallback() {
|
|
115
|
+
this.removeEventListener("animationstart", this.handleAnimationStart);
|
|
116
|
+
this.removeEventListener("animationend", this.handleAnimationEnd);
|
|
117
|
+
this.clearAnimationFallback();
|
|
118
|
+
this.pendingAnimation = null;
|
|
119
|
+
this.cleanupResizeObserver();
|
|
120
|
+
super.disconnectedCallback();
|
|
121
|
+
}
|
|
122
|
+
firstUpdated(changedProps) {
|
|
123
|
+
super.firstUpdated(changedProps);
|
|
124
|
+
if (this.open && !this.inert) {
|
|
125
|
+
this.animationState = "open";
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
this.animationState = "closed";
|
|
129
|
+
}
|
|
130
|
+
this.classList.toggle("panel--with-chat-header", this.showChatHeader);
|
|
131
|
+
this.classList.toggle("panel--with-frame", this.showFrame);
|
|
132
|
+
this.classList.toggle("panel--full-width", this.fullWidth);
|
|
133
|
+
this.updateHostClasses();
|
|
134
|
+
this.observeSlotContent();
|
|
135
|
+
}
|
|
136
|
+
updated(changedProperties) {
|
|
137
|
+
if (changedProperties.has("open") || changedProperties.has("inert")) {
|
|
138
|
+
this.updateVisibilityState();
|
|
139
|
+
}
|
|
140
|
+
if (changedProperties.has("showChatHeader")) {
|
|
141
|
+
this.classList.toggle("panel--with-chat-header", this.showChatHeader);
|
|
142
|
+
}
|
|
143
|
+
if (changedProperties.has("showFrame")) {
|
|
144
|
+
this.classList.toggle("panel--with-frame", this.showFrame);
|
|
145
|
+
}
|
|
146
|
+
if (changedProperties.has("fullWidth")) {
|
|
147
|
+
this.classList.toggle("panel--full-width", this.fullWidth);
|
|
148
|
+
}
|
|
149
|
+
if (changedProperties.has("animationOnOpen") ||
|
|
150
|
+
changedProperties.has("animationOnClose")) {
|
|
151
|
+
this.updateHostClasses();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
updateVisibilityState() {
|
|
155
|
+
const shouldBeOpen = this.open && !this.inert;
|
|
156
|
+
if (shouldBeOpen) {
|
|
157
|
+
if (this.animationState === "open" || this.animationState === "opening") {
|
|
158
|
+
this.updateHostClasses();
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
this.openPanel();
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
if (this.animationState === "closed" ||
|
|
165
|
+
this.animationState === "closing") {
|
|
166
|
+
this.updateHostClasses();
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
this.closePanel();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
openPanel() {
|
|
173
|
+
this.dispatchEvent(new CustomEvent("openstart", { bubbles: true, composed: true }));
|
|
174
|
+
this.clearAnimationFallback();
|
|
175
|
+
this.pendingAnimation = "opening";
|
|
176
|
+
this.animationStarted = false;
|
|
177
|
+
this.animationState = "opening";
|
|
178
|
+
this.updateHostClasses();
|
|
179
|
+
if (!this.shouldWaitForAnimation(this.animationOnOpen)) {
|
|
180
|
+
this.completeOpen();
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
this.scheduleAnimationFallback();
|
|
184
|
+
}
|
|
185
|
+
closePanel() {
|
|
186
|
+
this.dispatchEvent(new CustomEvent("closestart", { bubbles: true, composed: true }));
|
|
187
|
+
this.clearAnimationFallback();
|
|
188
|
+
this.pendingAnimation = "closing";
|
|
189
|
+
this.animationStarted = false;
|
|
190
|
+
this.animationState = "closing";
|
|
191
|
+
this.updateHostClasses();
|
|
192
|
+
if (!this.shouldWaitForAnimation(this.animationOnClose)) {
|
|
193
|
+
this.completeClose();
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
this.scheduleAnimationFallback();
|
|
197
|
+
}
|
|
198
|
+
completeOpen() {
|
|
199
|
+
this.clearAnimationFallback();
|
|
200
|
+
if (this.pendingAnimation === "opening") {
|
|
201
|
+
this.pendingAnimation = null;
|
|
202
|
+
}
|
|
203
|
+
if (this.animationState !== "opening") {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
this.animationStarted = false;
|
|
207
|
+
this.animationState = "open";
|
|
208
|
+
this.updateHostClasses();
|
|
209
|
+
this.dispatchEvent(new CustomEvent("openend", { bubbles: true, composed: true }));
|
|
210
|
+
}
|
|
211
|
+
completeClose() {
|
|
212
|
+
this.clearAnimationFallback();
|
|
213
|
+
if (this.pendingAnimation === "closing") {
|
|
214
|
+
this.pendingAnimation = null;
|
|
215
|
+
}
|
|
216
|
+
if (this.animationState !== "closing") {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
this.animationStarted = false;
|
|
220
|
+
this.animationState = "closed";
|
|
221
|
+
this.updateHostClasses();
|
|
222
|
+
this.dispatchEvent(new CustomEvent("closeend", { bubbles: true, composed: true }));
|
|
223
|
+
}
|
|
224
|
+
updateHostClasses() {
|
|
225
|
+
this.classList.toggle("panel-container--animating", this.animationState === "opening" || this.animationState === "closing");
|
|
226
|
+
this.classList.toggle("panel--open", this.animationState === "open");
|
|
227
|
+
this.classList.toggle("panel--closed", this.animationState === "closed");
|
|
228
|
+
this.updateAnimationClass("opening", this.animationOnOpen, this.animationState === "opening");
|
|
229
|
+
this.updateAnimationClass("closing", this.animationOnClose, this.animationState === "closing");
|
|
230
|
+
}
|
|
231
|
+
updateAnimationClass(type, animation, shouldApply) {
|
|
232
|
+
const prefix = `panel--${type}--`;
|
|
233
|
+
if (type === "opening" && this.currentOpeningClass) {
|
|
234
|
+
this.classList.remove(this.currentOpeningClass);
|
|
235
|
+
this.currentOpeningClass = undefined;
|
|
236
|
+
}
|
|
237
|
+
if (type === "closing" && this.currentClosingClass) {
|
|
238
|
+
this.classList.remove(this.currentClosingClass);
|
|
239
|
+
this.currentClosingClass = undefined;
|
|
240
|
+
}
|
|
241
|
+
if (!animation || !shouldApply) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
const className = `${prefix}${animation}`;
|
|
245
|
+
this.classList.add(className);
|
|
246
|
+
if (type === "opening") {
|
|
247
|
+
this.currentOpeningClass = className;
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
this.currentClosingClass = className;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
shouldWaitForAnimation(animation) {
|
|
254
|
+
if (!animation) {
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
if (typeof window === "undefined") {
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
260
|
+
if (typeof window.matchMedia === "function" &&
|
|
261
|
+
window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
return true;
|
|
265
|
+
}
|
|
266
|
+
scheduleAnimationFallback() {
|
|
267
|
+
if (typeof window === "undefined") {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
this.clearAnimationFallback();
|
|
271
|
+
this.animationFallbackId = window.setTimeout(() => {
|
|
272
|
+
if (this.animationStarted) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
if (this.pendingAnimation === "opening") {
|
|
276
|
+
this.completeOpen();
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
if (this.pendingAnimation === "closing") {
|
|
280
|
+
this.completeClose();
|
|
281
|
+
}
|
|
282
|
+
}, ANIMATION_START_DETECTION_DELAY_MS);
|
|
283
|
+
}
|
|
284
|
+
clearAnimationFallback() {
|
|
285
|
+
if (this.animationFallbackId !== null && typeof window !== "undefined") {
|
|
286
|
+
window.clearTimeout(this.animationFallbackId);
|
|
287
|
+
}
|
|
288
|
+
this.animationFallbackId = null;
|
|
289
|
+
}
|
|
290
|
+
setupResizeObserver() {
|
|
291
|
+
if (typeof window === "undefined" ||
|
|
292
|
+
typeof ResizeObserver === "undefined") {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
|
296
|
+
for (const entry of entries) {
|
|
297
|
+
const width = entry.contentRect.width;
|
|
298
|
+
this.updateWidthClass(width);
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
this.resizeObserver.observe(this);
|
|
302
|
+
}
|
|
303
|
+
cleanupResizeObserver() {
|
|
304
|
+
if (this.resizeObserver) {
|
|
305
|
+
this.resizeObserver.disconnect();
|
|
306
|
+
this.resizeObserver = undefined;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
getMessagesMaxWidth() {
|
|
310
|
+
if (typeof window === "undefined") {
|
|
311
|
+
return MESSAGES_MAX_WIDTH_FALLBACK;
|
|
312
|
+
}
|
|
313
|
+
const computedStyle = window.getComputedStyle(this);
|
|
314
|
+
const customPropValue = computedStyle
|
|
315
|
+
.getPropertyValue("--cds-aichat-messages-max-width")
|
|
316
|
+
.trim();
|
|
317
|
+
if (customPropValue) {
|
|
318
|
+
// Parse the value (e.g., "672px" -> 672)
|
|
319
|
+
const parsed = parseFloat(customPropValue);
|
|
320
|
+
if (!isNaN(parsed)) {
|
|
321
|
+
return parsed;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return MESSAGES_MAX_WIDTH_FALLBACK;
|
|
325
|
+
}
|
|
326
|
+
updateWidthClass(width) {
|
|
327
|
+
const maxWidth = this.getMessagesMaxWidth();
|
|
328
|
+
const isNarrow = width <= maxWidth;
|
|
329
|
+
this.classList.toggle("panel--with-less-than-messages-max-width", isNarrow);
|
|
330
|
+
}
|
|
331
|
+
hasSlotContent(slotName) {
|
|
332
|
+
const slot = this.renderRoot.querySelector(`slot[name="${slotName}"]`);
|
|
333
|
+
if (!slot) {
|
|
334
|
+
return false;
|
|
335
|
+
}
|
|
336
|
+
return slot
|
|
337
|
+
.assignedNodes({ flatten: true })
|
|
338
|
+
.some((node) => node.nodeType === Node.ELEMENT_NODE ||
|
|
339
|
+
(node.nodeType === Node.TEXT_NODE && node.textContent?.trim()));
|
|
340
|
+
}
|
|
341
|
+
observeSlotContent() {
|
|
342
|
+
const updateSlotStates = () => {
|
|
343
|
+
const previousStates = new Map(CdsAiChatPanel_1.OBSERVED_SLOTS.map(({ stateKey }) => [
|
|
344
|
+
stateKey,
|
|
345
|
+
this[stateKey],
|
|
346
|
+
]));
|
|
347
|
+
CdsAiChatPanel_1.OBSERVED_SLOTS.forEach(({ name, stateKey }) => {
|
|
348
|
+
this[stateKey] = this.hasSlotContent(name);
|
|
349
|
+
});
|
|
350
|
+
const hasChanged = CdsAiChatPanel_1.OBSERVED_SLOTS.some(({ stateKey }) => previousStates.get(stateKey) !== this[stateKey]);
|
|
351
|
+
if (hasChanged) {
|
|
352
|
+
this.requestUpdate();
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
// Initial check
|
|
356
|
+
updateSlotStates();
|
|
357
|
+
// Observe slot changes
|
|
358
|
+
const slots = CdsAiChatPanel_1.OBSERVED_SLOTS.map(({ name }) => this.renderRoot.querySelector(`slot[name="${name}"]`)).filter((slot) => slot !== null);
|
|
359
|
+
slots.forEach((slot) => {
|
|
360
|
+
slot.addEventListener("slotchange", updateSlotStates);
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
render() {
|
|
364
|
+
const headerClasses = [
|
|
365
|
+
"panel-header",
|
|
366
|
+
this.hasHeaderContent ? "has-content" : "",
|
|
367
|
+
]
|
|
368
|
+
.filter(Boolean)
|
|
369
|
+
.join(" ");
|
|
370
|
+
const bodyClasses = ["panel-body", this.hasBodyContent ? "has-content" : ""]
|
|
371
|
+
.filter(Boolean)
|
|
372
|
+
.join(" ");
|
|
373
|
+
const footerClasses = [
|
|
374
|
+
"panel-footer",
|
|
375
|
+
this.hasFooterContent ? "has-content" : "",
|
|
376
|
+
]
|
|
377
|
+
.filter(Boolean)
|
|
378
|
+
.join(" ");
|
|
379
|
+
return html `
|
|
380
|
+
<div class="panel-content">
|
|
381
|
+
<div class=${headerClasses}>
|
|
382
|
+
<slot name="header"></slot>
|
|
383
|
+
</div>
|
|
384
|
+
<div class=${bodyClasses}>
|
|
385
|
+
<slot name="body"></slot>
|
|
386
|
+
</div>
|
|
387
|
+
<div class=${footerClasses}>
|
|
388
|
+
<slot name="footer"></slot>
|
|
389
|
+
</div>
|
|
390
|
+
</div>
|
|
391
|
+
`;
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
CdsAiChatPanel.styles = styles;
|
|
395
|
+
/**
|
|
396
|
+
* @internal
|
|
397
|
+
*/
|
|
398
|
+
CdsAiChatPanel.OBSERVED_SLOTS = [
|
|
399
|
+
{ name: "header", stateKey: "hasHeaderContent" },
|
|
400
|
+
{ name: "body", stateKey: "hasBodyContent" },
|
|
401
|
+
{ name: "footer", stateKey: "hasFooterContent" },
|
|
402
|
+
];
|
|
403
|
+
__decorate([
|
|
404
|
+
property({ type: Boolean, reflect: true })
|
|
405
|
+
], CdsAiChatPanel.prototype, "open", void 0);
|
|
406
|
+
__decorate([
|
|
407
|
+
property({ type: Number, reflect: true })
|
|
408
|
+
], CdsAiChatPanel.prototype, "priority", void 0);
|
|
409
|
+
__decorate([
|
|
410
|
+
property({ type: Boolean, attribute: "full-width", reflect: true })
|
|
411
|
+
], CdsAiChatPanel.prototype, "fullWidth", void 0);
|
|
412
|
+
__decorate([
|
|
413
|
+
property({ type: Boolean, attribute: "show-chat-header", reflect: true })
|
|
414
|
+
], CdsAiChatPanel.prototype, "showChatHeader", void 0);
|
|
415
|
+
__decorate([
|
|
416
|
+
property({ type: Boolean, attribute: "show-frame", reflect: true })
|
|
417
|
+
], CdsAiChatPanel.prototype, "showFrame", void 0);
|
|
418
|
+
__decorate([
|
|
419
|
+
property({ type: String, attribute: "animation-on-open", reflect: true })
|
|
420
|
+
], CdsAiChatPanel.prototype, "animationOnOpen", void 0);
|
|
421
|
+
__decorate([
|
|
422
|
+
property({ type: String, attribute: "animation-on-close", reflect: true })
|
|
423
|
+
], CdsAiChatPanel.prototype, "animationOnClose", void 0);
|
|
424
|
+
__decorate([
|
|
425
|
+
property({ type: Boolean, reflect: true })
|
|
426
|
+
], CdsAiChatPanel.prototype, "inert", void 0);
|
|
427
|
+
CdsAiChatPanel = CdsAiChatPanel_1 = __decorate([
|
|
428
|
+
carbonElement("cds-aichat-panel")
|
|
429
|
+
], CdsAiChatPanel);
|
|
430
|
+
var CdsAiChatPanelElement = CdsAiChatPanel;
|
|
431
|
+
|
|
432
|
+
export { CdsAiChatPanelElement as default };
|
|
433
|
+
//# sourceMappingURL=cds-aichat-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cds-aichat-panel.js","sources":["../../../../src/components/chat-shell/src/cds-aichat-panel.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;AAOG;;AAOH,MAAM,kCAAkC,GAAG,GAAG;AAC9C,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAKxC,IAAM,cAAc,GAAA,gBAAA,GAApB,MAAM,cAAe,SAAQ,UAAU,CAAA;AAAvC,IAAA,WAAA,GAAA;;AAYE;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,KAAK;AAEZ;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,CAAC;AAEZ;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB;;AAEG;QAEH,IAAA,CAAA,cAAc,GAAG,KAAK;AAEtB;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;AAcjB;;AAEG;QAEH,IAAA,CAAA,KAAK,GAAG,KAAK;AAEb;;AAEG;QACK,IAAA,CAAA,gBAAgB,GAAiC,IAAI;AAE7D;;AAEG;QACK,IAAA,CAAA,gBAAgB,GAAG,KAAK;AAEhC;;AAEG;QACK,IAAA,CAAA,mBAAmB,GAAkB,IAAI;AAEjD;;AAEG;QACK,IAAA,CAAA,cAAc,GAAmB,QAAQ;AAiBjD;;AAEG;QACK,IAAA,CAAA,gBAAgB,GAAG,KAAK;AAEhC;;AAEG;QACK,IAAA,CAAA,cAAc,GAAG,KAAK;AAE9B;;AAEG;QACK,IAAA,CAAA,gBAAgB,GAAG,KAAK;AAkHhC;;AAEG;AACK,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,KAAqB,KAAI;AACvD,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;gBACzB;YACF;AACA,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC9B,QAAA,CAAC;AAED;;AAEG;AACK,QAAA,IAAA,CAAA,kBAAkB,GAAG,CAAC,KAAqB,KAAI;AACrD,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;gBACzB;YACF;AAEA,YAAA,IACE,IAAI,CAAC,gBAAgB,KAAK,SAAS;AACnC,gBAAA,IAAI,CAAC,cAAc,KAAK,SAAS,EACjC;gBACA,IAAI,CAAC,YAAY,EAAE;gBACnB;YACF;AAEA,YAAA,IACE,IAAI,CAAC,gBAAgB,KAAK,SAAS;AACnC,gBAAA,IAAI,CAAC,cAAc,KAAK,SAAS,EACjC;gBACA,IAAI,CAAC,aAAa,EAAE;YACtB;AACF,QAAA,CAAC;IA4QH;IA5ZE,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC;QAC9C,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC;QAClE,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC;QAC9D,IAAI,CAAC,mBAAmB,EAAE;IAC5B;IAEA,oBAAoB,GAAA;QAClB,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,CAAC,oBAAoB,CAAC;QACrE,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC;QACjE,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC5B,IAAI,CAAC,qBAAqB,EAAE;QAC5B,KAAK,CAAC,oBAAoB,EAAE;IAC9B;AAEU,IAAA,YAAY,CAAC,YAA4B,EAAA;AACjD,QAAA,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,MAAM;QAC9B;aAAO;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,QAAQ;QAChC;QACA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,EAAE,IAAI,CAAC,cAAc,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC;QAC1D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC;QAC1D,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,kBAAkB,EAAE;IAC3B;AAEU,IAAA,OAAO,CAAC,iBAAiC,EAAA;AACjD,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACnE,IAAI,CAAC,qBAAqB,EAAE;QAC9B;AAEA,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,EAAE,IAAI,CAAC,cAAc,CAAC;QACvE;AAEA,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC;QAC5D;AAEA,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC;QAC5D;AAEA,QAAA,IACE,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACxC,YAAA,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EACzC;YACA,IAAI,CAAC,iBAAiB,EAAE;QAC1B;IACF;IAEQ,qBAAqB,GAAA;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;QAC7C,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;gBACvE,IAAI,CAAC,iBAAiB,EAAE;gBACxB;YACF;YACA,IAAI,CAAC,SAAS,EAAE;QAClB;aAAO;AACL,YAAA,IACE,IAAI,CAAC,cAAc,KAAK,QAAQ;AAChC,gBAAA,IAAI,CAAC,cAAc,KAAK,SAAS,EACjC;gBACA,IAAI,CAAC,iBAAiB,EAAE;gBACxB;YACF;YACA,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAChE;QACD,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;AACjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS;QAC/B,IAAI,CAAC,iBAAiB,EAAE;QAExB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YACtD,IAAI,CAAC,YAAY,EAAE;YACnB;QACF;QAEA,IAAI,CAAC,yBAAyB,EAAE;IAClC;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACjE;QACD,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;AACjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS;QAC/B,IAAI,CAAC,iBAAiB,EAAE;QAExB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACvD,IAAI,CAAC,aAAa,EAAE;YACpB;QACF;QAEA,IAAI,CAAC,yBAAyB,EAAE;IAClC;IAoCQ,YAAY,GAAA;QAClB,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACvC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC9B;AAEA,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;YACrC;QACF;AAEA,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM;QAC5B,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC9D;IACH;IAEQ,aAAa,GAAA;QACnB,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACvC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC9B;AAEA,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;YACrC;QACF;AAEA,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ;QAC9B,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/D;IACH;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CACnB,4BAA4B,EAC5B,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,CACvE;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC;AACpE,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC;AAExE,QAAA,IAAI,CAAC,oBAAoB,CACvB,SAAS,EACT,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,KAAK,SAAS,CAClC;AACD,QAAA,IAAI,CAAC,oBAAoB,CACvB,SAAS,EACT,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,cAAc,KAAK,SAAS,CAClC;IACH;AAEQ,IAAA,oBAAoB,CAC1B,IAA2B,EAC3B,SAAkB,EAClB,WAAqB,EAAA;AAErB,QAAA,MAAM,MAAM,GAAG,CAAA,OAAA,EAAU,IAAI,IAAI;QACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAClD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAC/C,YAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;QACtC;QACA,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAClD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAC/C,YAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;QACtC;AAEA,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE;YAC9B;QACF;AAEA,QAAA,MAAM,SAAS,GAAG,CAAA,EAAG,MAAM,CAAA,EAAG,SAAS,EAAE;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC7B,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACtB,YAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;QACtC;aAAO;AACL,YAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;QACtC;IACF;AAEQ,IAAA,sBAAsB,CAAC,SAAkB,EAAA;QAC/C,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IACE,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;YACvC,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,OAAO,EAC7D;AACA,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI;IACb;IAEQ,yBAAyB,GAAA;AAC/B,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC;QACF;QACA,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;AAChD,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB;YACF;AACA,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACvC,IAAI,CAAC,YAAY,EAAE;gBACnB;YACF;AACA,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACvC,IAAI,CAAC,aAAa,EAAE;YACtB;QACF,CAAC,EAAE,kCAAkC,CAAC;IACxC;IAEQ,sBAAsB,GAAA;QAC5B,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACtE,YAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC;QAC/C;AACA,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;IACjC;IAEQ,mBAAmB,GAAA;QACzB,IACE,OAAO,MAAM,KAAK,WAAW;AAC7B,YAAA,OAAO,cAAc,KAAK,WAAW,EACrC;YACA;QACF;QAEA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,KAAI;AACnD,YAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;AAC3B,gBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK;AACrC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC9B;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC;IAEQ,qBAAqB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS;QACjC;IACF;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,OAAO,2BAA2B;QACpC;QAEA,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACnD,MAAM,eAAe,GAAG;aACrB,gBAAgB,CAAC,iCAAiC;AAClD,aAAA,IAAI,EAAE;QAET,IAAI,eAAe,EAAE;;AAEnB,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC;AAC1C,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAClB,gBAAA,OAAO,MAAM;YACf;QACF;AAEA,QAAA,OAAO,2BAA2B;IACpC;AAEQ,IAAA,gBAAgB,CAAC,KAAa,EAAA;AACpC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC3C,QAAA,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ;QAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,0CAA0C,EAAE,QAAQ,CAAC;IAC7E;AAEQ,IAAA,cAAc,CAAC,QAAgB,EAAA;AACrC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CACxC,CAAA,WAAA,EAAc,QAAQ,CAAA,EAAA,CAAI,CAC3B;QACD,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO;AACJ,aAAA,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAC/B,aAAA,IAAI,CACH,CAAC,IAAI,KACH,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;AACnC,aAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CACjE;IACL;IAEQ,kBAAkB,GAAA;QACxB,MAAM,gBAAgB,GAAG,MAAK;AAC5B,YAAA,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,gBAAc,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK;gBAClD,QAAQ;gBACR,IAAI,CAAC,QAAQ,CAAC;AACf,aAAA,CAAC,CACH;AAED,YAAA,gBAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAI;gBAC3D,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAC5C,YAAA,CAAC,CAAC;YAEF,MAAM,UAAU,GAAG,gBAAc,CAAC,cAAc,CAAC,IAAI,CACnD,CAAC,EAAE,QAAQ,EAAE,KAAK,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAClE;YAED,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,aAAa,EAAE;YACtB;AACF,QAAA,CAAC;;AAGD,QAAA,gBAAgB,EAAE;;AAGlB,QAAA,MAAM,KAAK,GAAG,gBAAc,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KACvD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAkB,cAAc,IAAI,CAAA,EAAA,CAAI,CAAC,CACvE,CAAC,MAAM,CAAC,CAAC,IAAI,KAA8B,IAAI,KAAK,IAAI,CAAC;AAE1D,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACrB,YAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC;AACvD,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG;YACpB,cAAc;YACd,IAAI,CAAC,gBAAgB,GAAG,aAAa,GAAG,EAAE;AAC3C;aACE,MAAM,CAAC,OAAO;aACd,IAAI,CAAC,GAAG,CAAC;AAEZ,QAAA,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,GAAG,aAAa,GAAG,EAAE;aACxE,MAAM,CAAC,OAAO;aACd,IAAI,CAAC,GAAG,CAAC;AAEZ,QAAA,MAAM,aAAa,GAAG;YACpB,cAAc;YACd,IAAI,CAAC,gBAAgB,GAAG,aAAa,GAAG,EAAE;AAC3C;aACE,MAAM,CAAC,OAAO;aACd,IAAI,CAAC,GAAG,CAAC;AAEZ,QAAA,OAAO,IAAI,CAAA;;qBAEM,aAAa,CAAA;;;qBAGb,WAAW,CAAA;;;qBAGX,aAAa,CAAA;;;;KAI7B;IACH;;AAxgBO,cAAA,CAAA,MAAM,GAAG,MAAH;AAEb;;AAEG;AACqB,cAAA,CAAA,cAAc,GAAG;AACvC,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAA2B,EAAE;AACzD,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAyB,EAAE;AACrD,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAA2B,EAAE;AAC1D,CAJqC;AAUtC,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC7B,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMb,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMb,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;AACjD,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;AAClD,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;AAMvB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;AACjD,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE;AAChD,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,CAAA;AAMzB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;AAChD,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,MAAA,CAAA;AAM1B,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AA1DV,cAAc,GAAA,gBAAA,GAAA,UAAA,CAAA;IADnB,aAAa,CAAC,kBAAkB;AAC3B,CAAA,EAAA,cAAc,CA0gBnB;AAED,4BAAe,cAAc;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2025
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { css } from 'lit';
|
|
9
|
+
|
|
10
|
+
var styles = css([":host{block-size:100%;border-end-end-radius:var(--cds-aichat-rounded-modifier-radius-end-end,0);border-end-start-radius:var(--cds-aichat-rounded-modifier-radius-end-start,0);border-start-end-radius:var(--cds-aichat-rounded-modifier-radius-start-start,0);border-start-start-radius:var(--cds-aichat-rounded-modifier-radius-start-end,0);box-sizing:border-box;display:block;inline-size:100%;inset-block-start:0;inset-inline-start:0;margin:0;min-block-size:100%;position:absolute;text-align:start}:host(.panel--with-less-than-messages-max-width){--cds-aichat-rounded-modifier-radius-end-start:var(--cds-aichat-rounded-radius,var(--cds-aichat-rounded-modifier-radius,0.5rem));--cds-aichat-rounded-modifier-radius-end-end:var(--cds-aichat-rounded-radius,var(--cds-aichat-rounded-modifier-radius,0.5rem))}:host(.panel--full-width){--cds-aichat-rounded-modifier-radius-end-start:var(--cds-aichat-rounded-radius,var(--cds-aichat-rounded-modifier-radius,0.5rem));--cds-aichat-rounded-modifier-radius-end-end:var(--cds-aichat-rounded-radius,var(--cds-aichat-rounded-modifier-radius,0.5rem))}:host(.panel--full-width:not(.panel--with-chat-header)){--cds-aichat-rounded-modifier-radius-start-start:var(--cds-aichat-rounded-radius,var(--cds-aichat-rounded-modifier-radius,0.5rem));--cds-aichat-rounded-modifier-radius-start-end:var(--cds-aichat-rounded-radius,var(--cds-aichat-rounded-modifier-radius,0.5rem))}:host(.panel--with-less-than-messages-max-width:not(.panel--with-chat-header)){--cds-aichat-rounded-modifier-radius-start-start:var(--cds-aichat-rounded-radius,var(--cds-aichat-rounded-modifier-radius,0.5rem));--cds-aichat-rounded-modifier-radius-start-end:var(--cds-aichat-rounded-radius,var(--cds-aichat-rounded-modifier-radius,0.5rem))}:host(.panel-container--animating){overflow:hidden}:host(.panel--closed){display:none}:host-context([dir=rtl]){inset-inline:unset 0;text-align:end}@media screen and (prefers-reduced-motion:no-preference){:host(.panel--opening--fade-in){animation:cds-aichat-fade-in .24s cubic-bezier(0,0,.3,1) both}:host(.panel--opening--slide-in-from-bottom){animation:cds-aichat-slide-in-from-bottom .24s cubic-bezier(.4,.14,1,1) both}:host(.panel--closing--fade-out){animation:cds-aichat-fade-out .24s cubic-bezier(.4,.14,1,1) both}:host(.panel--closing--slide-out-to-top){animation:cds-aichat-slide-out-to-top .15s cubic-bezier(.4,.14,1,1) both}:host(.panel--closing--slide-out-to-bottom){animation:cds-aichat-slide-out-to-bottom .15s cubic-bezier(.4,.14,1,1) both}}:host(.panel--with-chat-header){block-size:calc(100% - var(--cds-aichat--header-height, 0px));border-start-end-radius:0;border-start-start-radius:0;inline-size:100%;inset-block-start:var(--cds-aichat--header-height,0);inset-inline-start:50%;max-inline-size:var(--cds-aichat-max-width,100%);min-block-size:calc(100% - var(--cds-aichat--header-height, 0px));overflow:hidden;transform:translateX(-50%)}@media screen and (prefers-reduced-motion:no-preference){:host(.panel--with-chat-header.panel--opening--slide-in-from-bottom){animation:cds-aichat-slide-in-from-bottom-with-header .24s cubic-bezier(.4,.14,1,1) both}:host(.panel--with-chat-header.panel--closing--slide-out-to-bottom){animation:cds-aichat-slide-out-to-bottom-with-header .15s cubic-bezier(.4,.14,1,1) both}}.panel-content{block-size:100%;border-end-end-radius:var(--cds-aichat-rounded-modifier-radius-end-end,0);border-end-start-radius:var(--cds-aichat-rounded-modifier-radius-end-start,0);border-start-end-radius:var(--cds-aichat-rounded-modifier-radius-start-end,0);border-start-start-radius:var(--cds-aichat-rounded-modifier-radius-start-start,0);box-sizing:border-box;display:flex;flex-direction:column;inline-size:100%;margin:auto;max-inline-size:var(--cds-aichat-messages-max-width,672px)}:host([show-frame]) .panel-content{background-color:var(--cds-chat-shell-background,#fff);border:1px solid var(--cds-chat-bubble-border,#e0e0e0)}:host(.panel--full-width) .panel-content{background-color:transparent;max-inline-size:100%}.panel-footer,.panel-header{flex:0 0 auto}.panel-body{flex:1 1 auto}.panel-body.has-content{padding-block-end:1rem;padding-block-start:1rem;padding-inline-end:1rem;padding-inline-start:1rem}@keyframes cds-aichat-fade-in{0%{inset-inline-end:0;opacity:0}to{inset-inline-end:0;opacity:1}}@keyframes cds-aichat-fade-out{0%{opacity:1}to{opacity:0}}@keyframes cds-aichat-slide-in-from-bottom{0%{inset-block-start:100%}to{inset-block-start:0}}@keyframes cds-aichat-slide-out-to-bottom{0%{inset-block-start:0}to{inset-block-start:100%}}@keyframes cds-aichat-slide-in-from-bottom-with-header{0%{inset-block-start:100%}to{inset-block-start:var(--cds-aichat--header-height,0)}}@keyframes cds-aichat-slide-out-to-bottom-with-header{0%{inset-block-start:var(--cds-aichat--header-height,0)}to{inset-block-start:100%}}"]);
|
|
11
|
+
|
|
12
|
+
export { styles as default };
|
|
13
|
+
//# sourceMappingURL=cds-aichat-panel.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cds-aichat-panel.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*
|
|
4
|
+
* Copyright IBM Corp. 2025
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import { LitElement, PropertyValues } from "lit";
|
|
10
|
+
import "./cds-aichat-panel.js";
|
|
11
|
+
type StartOrEnd = "start" | "end";
|
|
12
|
+
declare class CdsAiChatShell extends LitElement {
|
|
13
|
+
static styles: any;
|
|
14
|
+
/**
|
|
15
|
+
* Enables AI-specific theming for the chat shell
|
|
16
|
+
*/
|
|
17
|
+
aiEnabled: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Shows a frame border around the chat shell
|
|
20
|
+
*/
|
|
21
|
+
showFrame: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Applies rounded corners to the chat shell
|
|
24
|
+
*/
|
|
25
|
+
roundedCorners: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Shows the history panel in the chat shell
|
|
28
|
+
*/
|
|
29
|
+
showHistory: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Shows the workspace panel in the chat shell
|
|
32
|
+
*/
|
|
33
|
+
showWorkspace: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Determines the location of the workspace panel ("start" or "end")
|
|
36
|
+
*/
|
|
37
|
+
workspaceLocation: StartOrEnd;
|
|
38
|
+
/**
|
|
39
|
+
* Determines the location of the history panel ("start" or "end")
|
|
40
|
+
*/
|
|
41
|
+
historyLocation: StartOrEnd;
|
|
42
|
+
private getWidgetClasses;
|
|
43
|
+
private getInputAndMessagesClasses;
|
|
44
|
+
private renderSlot;
|
|
45
|
+
private getSlotContentState;
|
|
46
|
+
private renderWorkspaceInline;
|
|
47
|
+
private renderWorkspacePanel;
|
|
48
|
+
private renderHeader;
|
|
49
|
+
private renderHeaderSlot;
|
|
50
|
+
private renderMessagesSection;
|
|
51
|
+
private renderHistory;
|
|
52
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
53
|
+
protected firstUpdated(changedProperties: PropertyValues): void;
|
|
54
|
+
private hasSlotContent;
|
|
55
|
+
private observeSlotContent;
|
|
56
|
+
protected updated(changedProperties: PropertyValues): void;
|
|
57
|
+
disconnectedCallback(): void;
|
|
58
|
+
private observeInputAndMessagesWidth;
|
|
59
|
+
private observeMainContentBodyWidth;
|
|
60
|
+
private getCssLengthFromProperty;
|
|
61
|
+
private getMessagesMaxWidth;
|
|
62
|
+
private observeHeaderHeight;
|
|
63
|
+
/**
|
|
64
|
+
* Observe CSS custom properties that affect messages max width.
|
|
65
|
+
* When --cds-aichat-messages-max-width changes, recalculate the at-max-width state.
|
|
66
|
+
*/
|
|
67
|
+
private observeCssProperties;
|
|
68
|
+
/**
|
|
69
|
+
* Check if --cds-aichat-messages-max-width has changed and trigger recalculation.
|
|
70
|
+
*/
|
|
71
|
+
private checkMessagesMaxWidthChange;
|
|
72
|
+
}
|
|
73
|
+
export default CdsAiChatShell;
|