igniteui-webcomponents 6.3.0-alpha.0 → 6.3.0-alpha.1
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/components/accordion/accordion.js +1 -4
- package/components/accordion/accordion.js.map +1 -1
- package/components/button/themes/button/button.base.css.js +1 -1
- package/components/button/themes/button/button.base.css.js.map +1 -1
- package/components/button/themes/button/shared/button.common.css.js +1 -1
- package/components/button/themes/button/shared/button.common.css.js.map +1 -1
- package/components/button/themes/button/shared/button.fluent.css.js +1 -1
- package/components/button/themes/button/shared/button.fluent.css.js.map +1 -1
- package/components/button/themes/button/shared/button.indigo.css.js +1 -1
- package/components/button/themes/button/shared/button.indigo.css.js.map +1 -1
- package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
- package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
- package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js +1 -1
- package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js.map +1 -1
- package/components/button/themes/icon-button/shared/icon-button.fluent.css.js +1 -1
- package/components/button/themes/icon-button/shared/icon-button.fluent.css.js.map +1 -1
- package/components/button/themes/icon-button/shared/icon-button.indigo.css.js +1 -1
- package/components/button/themes/icon-button/shared/icon-button.indigo.css.js.map +1 -1
- package/components/button/themes/icon-button/shared/icon-button.material.css.js +1 -1
- package/components/button/themes/icon-button/shared/icon-button.material.css.js.map +1 -1
- package/components/button-group/themes/shared/button/button.bootstrap.css.js +1 -1
- package/components/button-group/themes/shared/button/button.bootstrap.css.js.map +1 -1
- package/components/button-group/themes/shared/button/button.common.css.js +1 -1
- package/components/button-group/themes/shared/button/button.common.css.js.map +1 -1
- package/components/button-group/themes/shared/button/button.indigo.css.js +1 -1
- package/components/button-group/themes/shared/button/button.indigo.css.js.map +1 -1
- package/components/calendar/days-view/days-view.js +1 -3
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/months-view/months-view.js +1 -3
- package/components/calendar/months-view/months-view.js.map +1 -1
- package/components/calendar/themes/year-month-view.base.css.js +1 -1
- package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
- package/components/calendar/years-view/years-view.js +1 -3
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/carousel/carousel.js +0 -3
- package/components/carousel/carousel.js.map +1 -1
- package/components/chat/assets/file.png +0 -0
- package/components/chat/assets/json.png +0 -0
- package/components/chat/assets/link.png +0 -0
- package/components/chat/chat-input.d.ts +6 -22
- package/components/chat/chat-input.js +34 -163
- package/components/chat/chat-input.js.map +1 -1
- package/components/chat/chat-message-list.d.ts +5 -46
- package/components/chat/chat-message-list.js +16 -105
- package/components/chat/chat-message-list.js.map +1 -1
- package/components/chat/chat-message.d.ts +8 -18
- package/components/chat/chat-message.js +40 -29
- package/components/chat/chat-message.js.map +1 -1
- package/components/chat/chat-renderer.d.ts +14 -0
- package/components/chat/chat-renderer.js +39 -0
- package/components/chat/chat-renderer.js.map +1 -0
- package/components/chat/chat-state.d.ts +116 -21
- package/components/chat/chat-state.js +446 -75
- package/components/chat/chat-state.js.map +1 -1
- package/components/chat/chat.d.ts +27 -14
- package/components/chat/chat.js +145 -63
- package/components/chat/chat.js.map +1 -1
- package/components/chat/markdown-renderer.d.ts +72 -0
- package/components/chat/markdown-renderer.js +71 -0
- package/components/chat/markdown-renderer.js.map +1 -0
- package/components/chat/message-attachments.d.ts +0 -7
- package/components/chat/message-attachments.js +3 -81
- package/components/chat/message-attachments.js.map +1 -1
- package/components/chat/plain-text-renderer.d.ts +15 -0
- package/components/chat/plain-text-renderer.js +7 -0
- package/components/chat/plain-text-renderer.js.map +1 -0
- package/components/chat/themes/chat.base.css.js +1 -1
- package/components/chat/themes/chat.base.css.js.map +1 -1
- package/components/chat/themes/dark/chat.bootstrap.css.js +1 -1
- package/components/chat/themes/dark/chat.bootstrap.css.js.map +1 -1
- package/components/chat/themes/dark/chat.fluent.css.js +1 -1
- package/components/chat/themes/dark/chat.fluent.css.js.map +1 -1
- package/components/chat/themes/dark/chat.indigo.css.js +1 -1
- package/components/chat/themes/dark/chat.indigo.css.js.map +1 -1
- package/components/chat/themes/input.base.css.js +1 -1
- package/components/chat/themes/input.base.css.js.map +1 -1
- package/components/chat/themes/light/chat.bootstrap.css.js +1 -1
- package/components/chat/themes/light/chat.bootstrap.css.js.map +1 -1
- package/components/chat/themes/light/chat.fluent.css.js +1 -1
- package/components/chat/themes/light/chat.fluent.css.js.map +1 -1
- package/components/chat/themes/light/chat.indigo.css.js +1 -1
- package/components/chat/themes/light/chat.indigo.css.js.map +1 -1
- package/components/chat/themes/light/chat.shared.css.js +1 -1
- package/components/chat/themes/light/chat.shared.css.js.map +1 -1
- package/components/chat/themes/message-attachments.base.css.js +1 -1
- package/components/chat/themes/message-attachments.base.css.js.map +1 -1
- package/components/chat/themes/message-list.base.css.js +1 -1
- package/components/chat/themes/message-list.base.css.js.map +1 -1
- package/components/chat/themes/message.base.css.js +1 -1
- package/components/chat/themes/message.base.css.js.map +1 -1
- package/components/chat/themes/message.d.ts +2 -0
- package/components/chat/themes/message.js +28 -0
- package/components/chat/themes/message.js.map +1 -0
- package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js +3 -0
- package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js.map +1 -0
- package/components/chat/themes/shared/chat-message/chat-message.common.css.d.ts +1 -0
- package/components/chat/themes/shared/chat-message/chat-message.common.css.js +3 -0
- package/components/chat/themes/shared/chat-message/chat-message.common.css.js.map +1 -0
- package/components/chat/themes/shared/chat-message/chat-message.fluent.css.d.ts +1 -0
- package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js +3 -0
- package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js.map +1 -0
- package/components/chat/themes/shared/chat-message/chat-message.indigo.css.d.ts +1 -0
- package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js +3 -0
- package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js.map +1 -0
- package/components/chat/themes/shared/chat.bootstrap.css.d.ts +1 -0
- package/components/chat/themes/shared/chat.bootstrap.css.js +3 -0
- package/components/chat/themes/shared/chat.bootstrap.css.js.map +1 -0
- package/components/chat/themes/shared/chat.indigo.css.d.ts +1 -0
- package/components/chat/themes/shared/chat.indigo.css.js +3 -0
- package/components/chat/themes/shared/chat.indigo.css.js.map +1 -0
- package/components/chat/themes/shared/input/input.common.css.js +1 -1
- package/components/chat/themes/shared/input/input.common.css.js.map +1 -1
- package/components/chat/themes/shared/input/input.indigo.css.js +1 -1
- package/components/chat/themes/shared/input/input.indigo.css.js.map +1 -1
- package/components/chat/themes/shared/message-attachments.common.css.js +1 -1
- package/components/chat/themes/shared/message-attachments.common.css.js.map +1 -1
- package/components/chat/themes/shared/message-list.common.css.js +1 -1
- package/components/chat/themes/shared/message-list.common.css.js.map +1 -1
- package/components/chat/themes/themes.js +6 -4
- package/components/chat/themes/themes.js.map +1 -1
- package/components/chat/types.d.ts +72 -18
- package/components/chat/types.js +7 -0
- package/components/chat/types.js.map +1 -1
- package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js +1 -1
- package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/shared/switch/switch.common.css.js +1 -1
- package/components/checkbox/themes/shared/switch/switch.common.css.js.map +1 -1
- package/components/checkbox/themes/shared/switch/switch.fluent.css.js +1 -1
- package/components/checkbox/themes/shared/switch/switch.fluent.css.js.map +1 -1
- package/components/checkbox/themes/shared/switch/switch.indigo.css.js +1 -1
- package/components/checkbox/themes/shared/switch/switch.indigo.css.js.map +1 -1
- package/components/chip/themes/chip.base.css.js +1 -1
- package/components/chip/themes/chip.base.css.js.map +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
- package/components/combo/controllers/navigation.js +1 -1
- package/components/combo/controllers/navigation.js.map +1 -1
- package/components/combo/themes/combo-item.base.css.js +1 -1
- package/components/combo/themes/combo-item.base.css.js.map +1 -1
- package/components/combo/themes/combo.base.css.js +1 -1
- package/components/combo/themes/combo.base.css.js.map +1 -1
- package/components/combo/themes/shared/combo.bootstrap.css.js +1 -1
- package/components/combo/themes/shared/combo.bootstrap.css.js.map +1 -1
- package/components/combo/themes/shared/combo.common.css.js +1 -1
- package/components/combo/themes/shared/combo.common.css.js.map +1 -1
- package/components/combo/themes/shared/combo.fluent.css.js +1 -1
- package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
- package/components/combo/themes/shared/combo.indigo.css.js +1 -1
- package/components/combo/themes/shared/combo.indigo.css.js.map +1 -1
- package/components/combo/themes/shared/combo.material.css.js +1 -1
- package/components/combo/themes/shared/combo.material.css.js.map +1 -1
- package/components/common/controllers/key-bindings.js +4 -3
- package/components/common/controllers/key-bindings.js.map +1 -1
- package/components/common/i18n/chat.resources.d.ts +8 -0
- package/components/common/i18n/chat.resources.js +8 -0
- package/components/common/i18n/chat.resources.js.map +1 -0
- package/components/common/util.d.ts +14 -0
- package/components/common/util.js +51 -1
- package/components/common/util.js.map +1 -1
- package/components/date-picker/date-picker.js +2 -2
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
- package/components/date-range-picker/date-range-picker.js +0 -1
- package/components/date-range-picker/date-range-picker.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.common.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.common.css.js.map +1 -1
- package/components/date-time-input/date-time-input.js +1 -1
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
- package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
- package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
- package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
- package/components/dropdown/themes/shared/group/dropdown-group.fluent.css.js +1 -1
- package/components/dropdown/themes/shared/group/dropdown-group.fluent.css.js.map +1 -1
- package/components/dropdown/themes/shared/header/dropdown-header.common.css.js +1 -1
- package/components/dropdown/themes/shared/header/dropdown-header.common.css.js.map +1 -1
- package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js +1 -1
- package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js.map +1 -1
- package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
- package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
- package/components/expansion-panel/expansion-panel.js +0 -1
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
- package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
- package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js +1 -1
- package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js.map +1 -1
- package/components/file-input/themes/shared/file-input.bootstrap.css.js +1 -1
- package/components/file-input/themes/shared/file-input.bootstrap.css.js.map +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/shared/input.common.css.js +1 -1
- package/components/input/themes/shared/input.common.css.js.map +1 -1
- package/components/input/themes/shared/input.fluent.css.js +1 -1
- package/components/input/themes/shared/input.fluent.css.js.map +1 -1
- package/components/input/themes/shared/input.indigo.css.js +1 -1
- package/components/input/themes/shared/input.indigo.css.js.map +1 -1
- package/components/input/themes/shared/input.material.css.js +1 -1
- package/components/input/themes/shared/input.material.css.js.map +1 -1
- package/components/list/themes/header.base.css.js +1 -1
- package/components/list/themes/header.base.css.js.map +1 -1
- package/components/list/themes/item.base.css.js +1 -1
- package/components/list/themes/item.base.css.js.map +1 -1
- package/components/list/themes/shared/header/list-header.indigo.css.js +1 -1
- package/components/list/themes/shared/header/list-header.indigo.css.js.map +1 -1
- package/components/list/themes/shared/item/list-item.indigo.css.js +1 -1
- package/components/list/themes/shared/item/list-item.indigo.css.js.map +1 -1
- package/components/rating/rating.js +0 -1
- package/components/rating/rating.js.map +1 -1
- package/components/select/themes/dark/select.bootstrap.css.js +1 -1
- package/components/select/themes/dark/select.bootstrap.css.js.map +1 -1
- package/components/select/themes/light/select.bootstrap.css.js +1 -1
- package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
- package/components/select/themes/shared/select.bootstrap.css.js +1 -1
- package/components/select/themes/shared/select.bootstrap.css.js.map +1 -1
- package/components/select/themes/shared/select.common.css.js +1 -1
- package/components/select/themes/shared/select.common.css.js.map +1 -1
- package/components/select/themes/shared/select.material.css.js +1 -1
- package/components/select/themes/shared/select.material.css.js.map +1 -1
- package/components/slider/slider-base.js +0 -1
- package/components/slider/slider-base.js.map +1 -1
- package/components/tabs/tabs.js +0 -1
- package/components/tabs/tabs.js.map +1 -1
- package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
- package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.common.css.js +1 -1
- package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
- package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
- package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
- package/components/textarea/themes/textarea.base.css.js +1 -1
- package/components/textarea/themes/textarea.base.css.js.map +1 -1
- package/components/tree/themes/item.base.css.js +1 -1
- package/components/tree/themes/item.base.css.js.map +1 -1
- package/components/tree/themes/shared/item.indigo.css.js +1 -1
- package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
- package/components/tree/tree.js +3 -1
- package/components/tree/tree.js.map +1 -1
- package/components/tree/tree.navigation.js +3 -3
- package/components/tree/tree.navigation.js.map +1 -1
- package/components/tree/tree.selection.js +6 -2
- package/components/tree/tree.selection.js.map +1 -1
- package/custom-elements.json +5131 -4707
- package/igniteui-webcomponents.css-data.json +1 -1
- package/igniteui-webcomponents.html-data.json +1 -1
- package/index.d.ts +3 -0
- package/index.js +3 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/themes/dark/bootstrap.css +1 -1
- package/themes/dark/fluent.css +1 -1
- package/themes/dark/indigo.css +1 -1
- package/themes/dark/material.css +1 -1
- package/themes/light/bootstrap.css +1 -1
- package/themes/light/fluent.css +1 -1
- package/themes/light/indigo.css +1 -1
- package/themes/light/material.css +1 -1
- package/web-types.json +2 -2
- package/components/chat/markdown-util.d.ts +0 -2
- package/components/chat/markdown-util.js +0 -22
- package/components/chat/markdown-util.js.map +0 -1
- package/components/chat/themes/shared/chat-message.common.css.js +0 -3
- package/components/chat/themes/shared/chat-message.common.css.js.map +0 -1
- /package/components/chat/themes/shared/{chat-message.common.css.d.ts → chat-message/chat-message.bootstrap.css.d.ts} +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type TemplateResult } from 'lit';
|
|
2
|
+
import type { ChatMessageRenderer, IgcMessage } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Options to configure the MarkdownMessageRenderer.
|
|
5
|
+
*/
|
|
6
|
+
export interface MarkdownRendererOptions {
|
|
7
|
+
/**
|
|
8
|
+
* If true, disables syntax highlighting entirely.
|
|
9
|
+
*/
|
|
10
|
+
noHighlighter?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* A custom syntax highlighter compatible with Shiki's `codeToHtml()` API.
|
|
13
|
+
*/
|
|
14
|
+
highlighter?: any;
|
|
15
|
+
/**
|
|
16
|
+
* List of programming languages to support in syntax highlighting.
|
|
17
|
+
*/
|
|
18
|
+
languages?: string[];
|
|
19
|
+
/**
|
|
20
|
+
* The theme used by the syntax highlighter (e.g., 'github-light').
|
|
21
|
+
*/
|
|
22
|
+
theme?: string;
|
|
23
|
+
/**
|
|
24
|
+
* A custom HTML sanitization function. Defaults to DOMPurify.sanitize.
|
|
25
|
+
*/
|
|
26
|
+
sanitizer?: (html: string) => string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A renderer that converts markdown chat messages to HTML using `marked`,
|
|
30
|
+
* with optional syntax highlighting powered by `shiki` or a custom highlighter.
|
|
31
|
+
*
|
|
32
|
+
* @implements {ChatMessageRenderer}
|
|
33
|
+
*/
|
|
34
|
+
export declare class MarkdownMessageRenderer implements ChatMessageRenderer {
|
|
35
|
+
private opts;
|
|
36
|
+
private highlighter?;
|
|
37
|
+
private theme;
|
|
38
|
+
private langs;
|
|
39
|
+
private _marked;
|
|
40
|
+
private initialized;
|
|
41
|
+
private _sanitizer;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a new MarkdownMessageRenderer.
|
|
44
|
+
*
|
|
45
|
+
* @param {MarkdownRendererOptions} [opts={}] - Configuration options.
|
|
46
|
+
*/
|
|
47
|
+
constructor(opts?: MarkdownRendererOptions);
|
|
48
|
+
/**
|
|
49
|
+
* Initializes the `marked` instance with custom renderer options.
|
|
50
|
+
* Currently modifies link rendering to open in a new tab with safe attributes.
|
|
51
|
+
*
|
|
52
|
+
* @private
|
|
53
|
+
*/
|
|
54
|
+
private initMarked;
|
|
55
|
+
private initSanitizer;
|
|
56
|
+
/**
|
|
57
|
+
* Performs async initialization for syntax highlighting.
|
|
58
|
+
* Loads Shiki and configures the `marked` instance with `marked-shiki`.
|
|
59
|
+
* This is called lazily during rendering unless pre-called explicitly.
|
|
60
|
+
*
|
|
61
|
+
* @async
|
|
62
|
+
* @returns {Promise<void>} A promise that resolves once initialization is complete.
|
|
63
|
+
*/
|
|
64
|
+
init(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Renders the given chat message as markdown, with optional syntax highlighting.
|
|
67
|
+
*
|
|
68
|
+
* @param {IgcMessage} message - The message to render.
|
|
69
|
+
* @returns {Promise<TemplateResult>} A lit template containing the rendered markdown content.
|
|
70
|
+
*/
|
|
71
|
+
render(message: IgcMessage): Promise<TemplateResult>;
|
|
72
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import DOMPurify from 'dompurify';
|
|
2
|
+
import { html } from 'lit';
|
|
3
|
+
import { Marked, Renderer } from 'marked';
|
|
4
|
+
export class MarkdownMessageRenderer {
|
|
5
|
+
constructor(opts = {}) {
|
|
6
|
+
this.opts = opts;
|
|
7
|
+
this.initialized = false;
|
|
8
|
+
this.theme = opts.theme ?? 'github-light';
|
|
9
|
+
this.langs = opts.languages ?? ['javascript', 'typescript', 'html', 'css'];
|
|
10
|
+
this.highlighter = opts.highlighter;
|
|
11
|
+
this._marked = new Marked();
|
|
12
|
+
this.initMarked();
|
|
13
|
+
this._sanitizer = this.initSanitizer();
|
|
14
|
+
}
|
|
15
|
+
initMarked() {
|
|
16
|
+
const renderer = new Renderer();
|
|
17
|
+
renderer.link = (href, title, text) => {
|
|
18
|
+
return `<a href="${href}" target="_blank" rel="noopener noreferrer" ${title ? `title="${title}"` : ''}>${text}</a>`;
|
|
19
|
+
};
|
|
20
|
+
this._marked.setOptions({
|
|
21
|
+
gfm: true,
|
|
22
|
+
breaks: true,
|
|
23
|
+
renderer,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
initSanitizer() {
|
|
27
|
+
return this.opts?.sanitizer ?? DOMPurify.sanitize;
|
|
28
|
+
}
|
|
29
|
+
async init() {
|
|
30
|
+
if (this.highlighter || this.opts.noHighlighter) {
|
|
31
|
+
this.initialized = true;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const shiki = await import('shiki');
|
|
35
|
+
this.highlighter = await shiki.getSingletonHighlighter({
|
|
36
|
+
themes: [this.theme],
|
|
37
|
+
langs: this.langs,
|
|
38
|
+
});
|
|
39
|
+
const markedShiki = await import('marked-shiki');
|
|
40
|
+
this._marked.use(markedShiki.default({
|
|
41
|
+
highlight: (code, lang) => {
|
|
42
|
+
try {
|
|
43
|
+
const safeLang = lang && this.highlighter.getLoadedLanguages?.().includes(lang)
|
|
44
|
+
? lang
|
|
45
|
+
: 'text';
|
|
46
|
+
return (this.highlighter?.codeToHtml(code, {
|
|
47
|
+
lang: safeLang,
|
|
48
|
+
themes: { light: this.theme },
|
|
49
|
+
}) ?? code);
|
|
50
|
+
}
|
|
51
|
+
catch (_err) {
|
|
52
|
+
return `<pre><code>${DOMPurify.sanitize(code)}</code></pre>`;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
}));
|
|
56
|
+
this.initialized = true;
|
|
57
|
+
}
|
|
58
|
+
async render(message) {
|
|
59
|
+
if (!this.initialized) {
|
|
60
|
+
await this.init();
|
|
61
|
+
}
|
|
62
|
+
if (!message.text)
|
|
63
|
+
return html ``;
|
|
64
|
+
const rendered = await this._marked?.parse(message.text);
|
|
65
|
+
const cleanHtml = this._sanitizer(rendered);
|
|
66
|
+
const template = document.createElement('template');
|
|
67
|
+
template.innerHTML = cleanHtml ?? message.text;
|
|
68
|
+
return html `${template.content}`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=markdown-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-renderer.js","sourceRoot":"","sources":["../../../src/components/chat/markdown-renderer.ts"],"names":[],"mappings":"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","sourcesContent":["import DOMPurify from 'dompurify';\nimport { html, type TemplateResult } from 'lit';\nimport { Marked, Renderer } from 'marked';\nimport type { ChatMessageRenderer, IgcMessage } from './types.js';\n\n/**\n * Options to configure the MarkdownMessageRenderer.\n */\nexport interface MarkdownRendererOptions {\n /**\n * If true, disables syntax highlighting entirely.\n */\n noHighlighter?: boolean;\n\n /**\n * A custom syntax highlighter compatible with Shiki's `codeToHtml()` API.\n */\n highlighter?: any;\n\n /**\n * List of programming languages to support in syntax highlighting.\n */\n languages?: string[];\n\n /**\n * The theme used by the syntax highlighter (e.g., 'github-light').\n */\n theme?: string;\n\n /**\n * A custom HTML sanitization function. Defaults to DOMPurify.sanitize.\n */\n sanitizer?: (html: string) => string;\n}\n\n/**\n * A renderer that converts markdown chat messages to HTML using `marked`,\n * with optional syntax highlighting powered by `shiki` or a custom highlighter.\n *\n * @implements {ChatMessageRenderer}\n */\nexport class MarkdownMessageRenderer implements ChatMessageRenderer {\n private highlighter?: any;\n private theme: string;\n private langs: string[];\n private _marked: Marked;\n private initialized = false;\n private _sanitizer: (html: string) => string;\n\n /**\n * Creates a new MarkdownMessageRenderer.\n *\n * @param {MarkdownRendererOptions} [opts={}] - Configuration options.\n */\n constructor(private opts: MarkdownRendererOptions = {}) {\n this.theme = opts.theme ?? 'github-light';\n this.langs = opts.languages ?? ['javascript', 'typescript', 'html', 'css'];\n this.highlighter = opts.highlighter;\n\n this._marked = new Marked();\n this.initMarked();\n this._sanitizer = this.initSanitizer();\n }\n\n /**\n * Initializes the `marked` instance with custom renderer options.\n * Currently modifies link rendering to open in a new tab with safe attributes.\n *\n * @private\n */\n private initMarked() {\n const renderer = new Renderer();\n\n // Customize link rendering\n renderer.link = (href, title, text) => {\n return `<a href=\"${href}\" target=\"_blank\" rel=\"noopener noreferrer\" ${title ? `title=\"${title}\"` : ''}>${text}</a>`;\n };\n\n this._marked.setOptions({\n gfm: true,\n breaks: true,\n renderer,\n });\n }\n\n private initSanitizer() {\n return this.opts?.sanitizer ?? DOMPurify.sanitize;\n }\n\n /**\n * Performs async initialization for syntax highlighting.\n * Loads Shiki and configures the `marked` instance with `marked-shiki`.\n * This is called lazily during rendering unless pre-called explicitly.\n *\n * @async\n * @returns {Promise<void>} A promise that resolves once initialization is complete.\n */\n async init(): Promise<void> {\n if (this.highlighter || this.opts.noHighlighter) {\n this.initialized = true;\n return;\n }\n\n const shiki = await import('shiki');\n this.highlighter = await shiki.getSingletonHighlighter({\n themes: [this.theme],\n langs: this.langs,\n });\n\n const markedShiki = await import('marked-shiki');\n this._marked.use(\n markedShiki.default({\n highlight: (code: any, lang: string) => {\n try {\n const safeLang =\n lang && this.highlighter.getLoadedLanguages?.().includes(lang)\n ? lang\n : 'text';\n\n return (\n this.highlighter?.codeToHtml(code, {\n lang: safeLang,\n themes: { light: this.theme },\n }) ?? code\n );\n } catch (_err) {\n // if Shiki still throws for some reason, just return escaped code\n return `<pre><code>${DOMPurify.sanitize(code)}</code></pre>`;\n }\n },\n })\n );\n\n this.initialized = true;\n }\n\n /**\n * Renders the given chat message as markdown, with optional syntax highlighting.\n *\n * @param {IgcMessage} message - The message to render.\n * @returns {Promise<TemplateResult>} A lit template containing the rendered markdown content.\n */\n async render(message: IgcMessage): Promise<TemplateResult> {\n if (!this.initialized) {\n await this.init();\n }\n\n if (!message.text) return html``;\n\n const rendered = await this._marked?.parse(message.text);\n const cleanHtml = this._sanitizer(rendered);\n const template = document.createElement('template');\n template.innerHTML = cleanHtml ?? message.text;\n\n return html`${template.content}`;\n }\n}\n"]}
|
|
@@ -29,13 +29,6 @@ export default class IgcMessageAttachmentsComponent extends LitElement {
|
|
|
29
29
|
*/
|
|
30
30
|
message: IgcMessage | undefined;
|
|
31
31
|
constructor();
|
|
32
|
-
private handleHeaderClick;
|
|
33
|
-
private getURL;
|
|
34
|
-
private defaulAttachmentContent;
|
|
35
|
-
private renderAttachmentHeaderText;
|
|
36
|
-
private renderAttachmentHeaderActions;
|
|
37
|
-
private renderAttachmentContent;
|
|
38
|
-
private renderDefaultAttachmentsTemplate;
|
|
39
32
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
40
33
|
}
|
|
41
34
|
declare global {
|
|
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { consume } from '@lit/context';
|
|
8
|
-
import { html, LitElement
|
|
8
|
+
import { html, LitElement } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
10
|
import IgcIconButtonComponent from '../button/icon-button.js';
|
|
11
11
|
import { chatContext } from '../common/context.js';
|
|
@@ -28,89 +28,11 @@ class IgcMessageAttachmentsComponent extends LitElement {
|
|
|
28
28
|
registerIconFromText('preview', previewIcon, 'material');
|
|
29
29
|
registerIconFromText('more', moreIcon, 'material');
|
|
30
30
|
}
|
|
31
|
-
handleHeaderClick(attachment) {
|
|
32
|
-
this._chatState?.emitEvent('igcAttachmentClick', { detail: attachment });
|
|
33
|
-
}
|
|
34
|
-
getURL(attachment) {
|
|
35
|
-
if (attachment.url) {
|
|
36
|
-
return attachment.url;
|
|
37
|
-
}
|
|
38
|
-
if (attachment.file) {
|
|
39
|
-
return URL.createObjectURL(attachment.file);
|
|
40
|
-
}
|
|
41
|
-
return '';
|
|
42
|
-
}
|
|
43
|
-
defaulAttachmentContent(attachment) {
|
|
44
|
-
return html `${attachment.type === 'image' ||
|
|
45
|
-
attachment.file?.type.startsWith('image/')
|
|
46
|
-
? html `<img
|
|
47
|
-
part="image-attachment"
|
|
48
|
-
src=${this.getURL(attachment)}
|
|
49
|
-
alt=${attachment.name}
|
|
50
|
-
/>`
|
|
51
|
-
: nothing}`;
|
|
52
|
-
}
|
|
53
|
-
renderAttachmentHeaderText(attachment) {
|
|
54
|
-
return html `<div part="details">
|
|
55
|
-
${this._chatState?.options?.templates?.attachmentHeaderTemplate &&
|
|
56
|
-
this.message
|
|
57
|
-
? this._chatState.options.templates.attachmentHeaderTemplate(this.message)
|
|
58
|
-
: html `${attachment.type === 'image' ||
|
|
59
|
-
attachment.file?.type.startsWith('image/')
|
|
60
|
-
? html `<igc-icon
|
|
61
|
-
name="image"
|
|
62
|
-
collection="material"
|
|
63
|
-
part="attachment-icon"
|
|
64
|
-
></igc-icon>`
|
|
65
|
-
: html `<igc-icon
|
|
66
|
-
name="file"
|
|
67
|
-
collection="material"
|
|
68
|
-
part="attachment-icon"
|
|
69
|
-
></igc-icon>`}
|
|
70
|
-
<span part="file-name">${attachment.name}</span> `}
|
|
71
|
-
</div>`;
|
|
72
|
-
}
|
|
73
|
-
renderAttachmentHeaderActions() {
|
|
74
|
-
return html `<div part="actions">
|
|
75
|
-
${this._chatState?.options?.templates?.attachmentActionsTemplate &&
|
|
76
|
-
this.message
|
|
77
|
-
? this._chatState.options.templates.attachmentActionsTemplate(this.message)
|
|
78
|
-
: nothing}
|
|
79
|
-
</div>`;
|
|
80
|
-
}
|
|
81
|
-
renderAttachmentContent(attachment) {
|
|
82
|
-
return html `<div part="attachment-content">
|
|
83
|
-
${this._chatState?.options?.templates?.attachmentContentTemplate &&
|
|
84
|
-
this.message
|
|
85
|
-
? this._chatState.options.templates.attachmentContentTemplate(this.message)
|
|
86
|
-
: this.defaulAttachmentContent(attachment)}
|
|
87
|
-
</div>`;
|
|
88
|
-
}
|
|
89
|
-
renderDefaultAttachmentsTemplate() {
|
|
90
|
-
return html `${this.message?.attachments?.map((attachment) => html `<div part="attachment">
|
|
91
|
-
<div
|
|
92
|
-
part="attachment-header"
|
|
93
|
-
role="button"
|
|
94
|
-
@click=${() => this.handleHeaderClick(attachment)}
|
|
95
|
-
>
|
|
96
|
-
${this.renderAttachmentHeaderText(attachment)}
|
|
97
|
-
${this.renderAttachmentHeaderActions()}
|
|
98
|
-
</div>
|
|
99
|
-
|
|
100
|
-
${attachment.type === 'image' ||
|
|
101
|
-
attachment.file?.type.startsWith('image/') ||
|
|
102
|
-
this._chatState?.options?.templates?.attachmentContentTemplate
|
|
103
|
-
? this.renderAttachmentContent(attachment)
|
|
104
|
-
: nothing}
|
|
105
|
-
</div>`)}`;
|
|
106
|
-
}
|
|
107
31
|
render() {
|
|
32
|
+
const templates = this._chatState?.mergedTemplates;
|
|
108
33
|
return html `
|
|
109
34
|
<div part="attachments-container">
|
|
110
|
-
${this.
|
|
111
|
-
this.message
|
|
112
|
-
? this._chatState.options.templates.attachmentTemplate(this.message)
|
|
113
|
-
: this.renderDefaultAttachmentsTemplate()}
|
|
35
|
+
${templates?.attachmentsTemplate(this.message, { templates })}
|
|
114
36
|
</div>
|
|
115
37
|
`;
|
|
116
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-attachments.js","sourceRoot":"","sources":["../../../src/components/chat/message-attachments.ts"],"names":[],"mappings":"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","sourcesContent":["import { consume } from '@lit/context';\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport IgcIconButtonComponent from '../button/icon-button.js';\nimport { chatContext } from '../common/context.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { registerIconFromText } from '../icon/icon.registry.js';\nimport type { ChatState } from './chat-state.js';\nimport { styles } from './themes/message-attachments.base.css.js';\nimport { styles as shared } from './themes/shared/message-attachments.common.css.js';\nimport {\n closeIcon,\n fileIcon,\n type IgcMessage,\n type IgcMessageAttachment,\n imageIcon,\n moreIcon,\n previewIcon,\n} from './types.js';\n\n/**\n * A component that renders message attachments within a chat.\n *\n * Displays attachments such as images or files, supporting custom templates\n * and default rendering using expansion panels.\n *\n * @element igc-message-attachments\n *\n * @csspart attachments-container - Container wrapping all attachments.\n * @csspart attachment - Wrapper for a single attachment.\n * @csspart attachment-header - Wrapper for a single attachment header.\n * @csspart attachments-content - Part representing the attachment preview.\n * @csspart attachment-icon - Icon part representing the attachment type.\n * @csspart file-name - Part representing the attachment's file name.\n * @csspart actions - Container for header action buttons.\n * @csspart image-attachment - Part for the image element inside an image attachment.\n *\n * @fires igcAttachmentClick - Fired when an attachment header is toggled (clicked).\n */\nexport default class IgcMessageAttachmentsComponent extends LitElement {\n public static readonly tagName = 'igc-message-attachments';\n\n public static override styles = [styles, shared];\n\n @consume({ context: chatContext, subscribe: true })\n private _chatState?: ChatState;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcMessageAttachmentsComponent,\n IgcIconComponent,\n IgcIconButtonComponent,\n IgcExpansionPanelComponent\n );\n }\n\n /**\n * The array of attachments to render.\n */\n @property({ attribute: false })\n message: IgcMessage | undefined;\n\n constructor() {\n super();\n registerIconFromText('close', closeIcon, 'material');\n registerIconFromText('file', fileIcon, 'material');\n registerIconFromText('image', imageIcon, 'material');\n registerIconFromText('preview', previewIcon, 'material');\n registerIconFromText('more', moreIcon, 'material');\n }\n\n private handleHeaderClick(attachment: IgcMessageAttachment) {\n this._chatState?.emitEvent('igcAttachmentClick', { detail: attachment });\n }\n\n private getURL(attachment: IgcMessageAttachment): string {\n if (attachment.url) {\n return attachment.url;\n }\n if (attachment.file) {\n return URL.createObjectURL(attachment.file);\n }\n return '';\n }\n\n private defaulAttachmentContent(attachment: IgcMessageAttachment) {\n return html`${attachment.type === 'image' ||\n attachment.file?.type.startsWith('image/')\n ? html`<img\n part=\"image-attachment\"\n src=${this.getURL(attachment)}\n alt=${attachment.name}\n />`\n : nothing}`;\n }\n\n private renderAttachmentHeaderText(attachment: IgcMessageAttachment) {\n return html`<div part=\"details\">\n ${this._chatState?.options?.templates?.attachmentHeaderTemplate &&\n this.message\n ? this._chatState.options.templates.attachmentHeaderTemplate(\n this.message\n )\n : html`${attachment.type === 'image' ||\n attachment.file?.type.startsWith('image/')\n ? html`<igc-icon\n name=\"image\"\n collection=\"material\"\n part=\"attachment-icon\"\n ></igc-icon>`\n : html`<igc-icon\n name=\"file\"\n collection=\"material\"\n part=\"attachment-icon\"\n ></igc-icon>`}\n <span part=\"file-name\">${attachment.name}</span> `}\n </div>`;\n }\n\n private renderAttachmentHeaderActions() {\n return html`<div part=\"actions\">\n ${this._chatState?.options?.templates?.attachmentActionsTemplate &&\n this.message\n ? this._chatState.options.templates.attachmentActionsTemplate(\n this.message\n )\n : nothing}\n </div>`;\n }\n\n private renderAttachmentContent(attachment: IgcMessageAttachment) {\n return html`<div part=\"attachment-content\">\n ${this._chatState?.options?.templates?.attachmentContentTemplate &&\n this.message\n ? this._chatState.options.templates.attachmentContentTemplate(\n this.message\n )\n : this.defaulAttachmentContent(attachment)}\n </div>`;\n }\n\n private renderDefaultAttachmentsTemplate() {\n return html`${this.message?.attachments?.map(\n (attachment) =>\n html`<div part=\"attachment\">\n <div\n part=\"attachment-header\"\n role=\"button\"\n @click=${() => this.handleHeaderClick(attachment)}\n >\n ${this.renderAttachmentHeaderText(attachment)}\n ${this.renderAttachmentHeaderActions()}\n </div>\n\n ${attachment.type === 'image' ||\n attachment.file?.type.startsWith('image/') ||\n this._chatState?.options?.templates?.attachmentContentTemplate\n ? this.renderAttachmentContent(attachment)\n : nothing}\n </div>`\n )}`;\n }\n\n protected override render() {\n return html`\n <div part=\"attachments-container\">\n ${this._chatState?.options?.templates?.attachmentTemplate &&\n this.message\n ? this._chatState.options.templates.attachmentTemplate(this.message)\n : this.renderDefaultAttachmentsTemplate()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-message-attachments': IgcMessageAttachmentsComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"message-attachments.js","sourceRoot":"","sources":["../../../src/components/chat/message-attachments.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,0BAA0B,MAAM,uCAAuC,CAAC;AAC/E,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,mDAAmD,CAAC;AACrF,OAAO,EACL,SAAS,EACT,QAAQ,EAER,SAAS,EACT,QAAQ,EACR,WAAW,GACZ,MAAM,YAAY,CAAC;AAqBpB,MAAqB,8BAA+B,SAAQ,UAAU;IAS7D,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CACf,8BAA8B,EAC9B,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,CAC3B,CAAC;IACJ,CAAC;IAQD;QACE,KAAK,EAAE,CAAC;QACR,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnD,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACzD,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAEkB,MAAM;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC;QAEnD,OAAO,IAAI,CAAA;;UAEL,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAQ,EAAE,EAAE,SAAS,EAAE,CAAC;;KAEjE,CAAC;IACJ,CAAC;;AAxCsB,sCAAO,GAAG,yBAAyB,CAAC;AAEpC,qCAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;eAH9B,8BAA8B;AAMzC;IADP,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;kEACpB;AAgB/B;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;+DACC","sourcesContent":["import { consume } from '@lit/context';\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport IgcIconButtonComponent from '../button/icon-button.js';\nimport { chatContext } from '../common/context.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { registerIconFromText } from '../icon/icon.registry.js';\nimport type { ChatState } from './chat-state.js';\nimport { styles } from './themes/message-attachments.base.css.js';\nimport { styles as shared } from './themes/shared/message-attachments.common.css.js';\nimport {\n closeIcon,\n fileIcon,\n type IgcMessage,\n imageIcon,\n moreIcon,\n previewIcon,\n} from './types.js';\n\n/**\n * A component that renders message attachments within a chat.\n *\n * Displays attachments such as images or files, supporting custom templates\n * and default rendering using expansion panels.\n *\n * @element igc-message-attachments\n *\n * @csspart attachments-container - Container wrapping all attachments.\n * @csspart attachment - Wrapper for a single attachment.\n * @csspart attachment-header - Wrapper for a single attachment header.\n * @csspart attachments-content - Part representing the attachment preview.\n * @csspart attachment-icon - Icon part representing the attachment type.\n * @csspart file-name - Part representing the attachment's file name.\n * @csspart actions - Container for header action buttons.\n * @csspart image-attachment - Part for the image element inside an image attachment.\n *\n * @fires igcAttachmentClick - Fired when an attachment header is toggled (clicked).\n */\nexport default class IgcMessageAttachmentsComponent extends LitElement {\n public static readonly tagName = 'igc-message-attachments';\n\n public static override styles = [styles, shared];\n\n @consume({ context: chatContext, subscribe: true })\n private _chatState?: ChatState;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(\n IgcMessageAttachmentsComponent,\n IgcIconComponent,\n IgcIconButtonComponent,\n IgcExpansionPanelComponent\n );\n }\n\n /**\n * The array of attachments to render.\n */\n @property({ attribute: false })\n message: IgcMessage | undefined;\n\n constructor() {\n super();\n registerIconFromText('close', closeIcon, 'material');\n registerIconFromText('file', fileIcon, 'material');\n registerIconFromText('image', imageIcon, 'material');\n registerIconFromText('preview', previewIcon, 'material');\n registerIconFromText('more', moreIcon, 'material');\n }\n\n protected override render() {\n const templates = this._chatState?.mergedTemplates;\n\n return html`\n <div part=\"attachments-container\">\n ${templates?.attachmentsTemplate(this.message!, { templates })}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-message-attachments': IgcMessageAttachmentsComponent;\n }\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ChatMessageRenderer, IgcMessage } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A simple renderer that outputs plain text messages without any formatting or parsing.
|
|
4
|
+
* The message content is wrapped in a <pre> tag to preserve whitespace and formatting.
|
|
5
|
+
*
|
|
6
|
+
* @implements {ChatMessageRenderer}
|
|
7
|
+
*/
|
|
8
|
+
export declare class PlainTextRenderer implements ChatMessageRenderer {
|
|
9
|
+
/**
|
|
10
|
+
* Renders the given message as plain text.
|
|
11
|
+
* @param {IgcMessage} message - The chat message to render.
|
|
12
|
+
* @returns {TemplateResult} A lit-html template containing the plain text wrapped in a <pre> element.
|
|
13
|
+
*/
|
|
14
|
+
render(message: IgcMessage): unknown;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plain-text-renderer.js","sourceRoot":"","sources":["../../../src/components/chat/plain-text-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAS3B,MAAM,OAAO,iBAAiB;IAM5B,MAAM,CAAC,OAAmB;QACxB,OAAO,IAAI,CAAA,0BAA0B,OAAO,CAAC,IAAI,QAAQ,CAAC;IAC5D,CAAC;CACF","sourcesContent":["import { html } from 'lit';\nimport type { ChatMessageRenderer, IgcMessage } from './types.js';\n\n/**\n * A simple renderer that outputs plain text messages without any formatting or parsing.\n * The message content is wrapped in a <pre> tag to preserve whitespace and formatting.\n *\n * @implements {ChatMessageRenderer}\n */\nexport class PlainTextRenderer implements ChatMessageRenderer {\n /**\n * Renders the given message as plain text.\n * @param {IgcMessage} message - The chat message to render.\n * @returns {TemplateResult} A lit-html template containing the plain text wrapped in a <pre> element.\n */\n render(message: IgcMessage): unknown {\n return html`<pre part=\"plain-text\">${message.text}</pre>`;\n }\n}\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{width:100%;height:
|
|
2
|
+
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{--igc-chat-height: 100%;width:100%;height:var(--igc-chat-height);overflow:hidden;display:flex;flex-direction:column}[part=chat-container]{display:flex;flex-direction:column;align-items:center;height:100%}[part=chat-wrapper]{display:flex;flex-direction:column;overflow:hidden auto;width:100%;flex:1;align-items:center}[part=empty-state],[part=suggestions-container]{max-width:49.5rem;width:100%;padding-inline:1rem}[part=empty-state]{height:100%}[part=header]{display:flex;align-items:center;min-height:3.5rem;padding-inline:1rem;box-shadow:var(--ig-elevation-4);width:100%;z-index:1}[part=title]{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom);margin:0}[part=actions]{display:flex;margin-inline-start:auto;gap:1rem}[part=prefix]{display:block;margin-inline-end:2rem}igc-list{--ig-size: 3;padding-block-end:1.5rem;min-height:-moz-fit-content;min-height:fit-content;width:-moz-fit-content;width:fit-content;max-width:36rem}igc-list-item{cursor:pointer}igc-list-item::part(title){display:-webkit-inline-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}`;
|
|
3
3
|
//# sourceMappingURL=chat.base.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/chat.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"chat.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/chat.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,yzEAAyzE,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{--igc-chat-height: 100%;width:100%;height:var(--igc-chat-height);overflow:hidden;display:flex;flex-direction:column}[part=chat-container]{display:flex;flex-direction:column;align-items:center;height:100%}[part=chat-wrapper]{display:flex;flex-direction:column;overflow:hidden auto;width:100%;flex:1;align-items:center}[part=empty-state],[part=suggestions-container]{max-width:49.5rem;width:100%;padding-inline:1rem}[part=empty-state]{height:100%}[part=header]{display:flex;align-items:center;min-height:3.5rem;padding-inline:1rem;box-shadow:var(--ig-elevation-4);width:100%;z-index:1}[part=title]{font-family:var(--ig-h6-font-family, var(--ig-font-family));font-size:var(--ig-h6-font-size);font-weight:var(--ig-h6-font-weight);font-style:var(--ig-h6-font-style);line-height:var(--ig-h6-line-height);letter-spacing:var(--ig-h6-letter-spacing);text-transform:var(--ig-h6-text-transform);margin-top:var(--ig-h6-margin-top);margin-bottom:var(--ig-h6-margin-bottom);margin:0}[part=actions]{display:flex;margin-inline-start:auto;gap:1rem}[part=prefix]{display:block;margin-inline-end:2rem}igc-list{--ig-size: 3;padding-block-end:1.5rem;min-height:-moz-fit-content;min-height:fit-content;width:-moz-fit-content;width:fit-content;max-width:36rem}igc-list-item{cursor:pointer}igc-list-item::part(title){display:-webkit-inline-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--ig-theme: bootstrap}`;
|
|
2
|
+
export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--ig-theme: bootstrap}`;
|
|
3
3
|
//# sourceMappingURL=chat.bootstrap.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"chat.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,qKAAqK,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--ig-theme: bootstrap}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--ig-theme: fluent}`;
|
|
2
|
+
export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--ig-theme: fluent}`;
|
|
3
3
|
//# sourceMappingURL=chat.fluent.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"chat.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,qPAAqP,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--ig-theme: fluent}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-
|
|
2
|
+
export const styles = css `:host{--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--ig-theme: indigo}`;
|
|
3
3
|
//# sourceMappingURL=chat.indigo.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"chat.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/dark/chat.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,0UAA0U,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--ig-theme: indigo}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:flex;align-items:center;width:100%;padding-block:1rem;justify-content:center}[part~=input-container]{display:flex;flex-direction:column;max-width:47.5rem;width:100%;margin-inline:1rem;gap:.
|
|
2
|
+
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:flex;align-items:center;width:100%;padding-block:1rem;justify-content:center}[part~=input-container]{display:flex;flex-direction:column;max-width:47.5rem;width:100%;margin-inline:1rem;border-radius:.25rem;padding:1rem;gap:.75rem}[part=buttons-container]{display:flex;align-items:center}[part=send-button]{margin-inline-start:auto}[part=upload-button]{position:relative;display:inline-block}[part=upload-button] input{position:absolute;width:0;aspect-ratio:1;inset:0;opacity:0}[part=attachments]{display:flex;flex-wrap:wrap;gap:.5rem}[part=attachment-wrapper]{min-width:5.625rem;max-width:-moz-fit-content;max-width:fit-content;flex:1 1}[part=attachment-wrapper] igc-chip{--ig-size: 2}igc-textarea::part(input){max-height:13.5rem;overflow-y:auto}igc-icon-button{--ig-size: 2}`;
|
|
3
3
|
//# sourceMappingURL=input.base.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/input.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"input.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/input.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,8tDAA8tD,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:flex;align-items:center;width:100%;padding-block:1rem;justify-content:center}[part~=input-container]{display:flex;flex-direction:column;max-width:47.5rem;width:100%;margin-inline:1rem;border-radius:.25rem;padding:1rem;gap:.75rem}[part=buttons-container]{display:flex;align-items:center}[part=send-button]{margin-inline-start:auto}[part=upload-button]{position:relative;display:inline-block}[part=upload-button] input{position:absolute;width:0;aspect-ratio:1;inset:0;opacity:0}[part=attachments]{display:flex;flex-wrap:wrap;gap:.5rem}[part=attachment-wrapper]{min-width:5.625rem;max-width:-moz-fit-content;max-width:fit-content;flex:1 1}[part=attachment-wrapper] igc-chip{--ig-size: 2}igc-textarea::part(input){max-height:13.5rem;overflow-y:auto}igc-icon-button{--ig-size: 2}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--focused-secondary-color: var(--ig-chat-focused-secondary-color, hsl(from var(--ig-primary-500) h s l/0.38));--ig-theme: bootstrap}`;
|
|
2
|
+
export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--focused-secondary-color: var(--ig-chat-focused-secondary-color, hsl(from var(--ig-primary-500) h s l/0.38));--ig-theme: bootstrap}`;
|
|
3
3
|
//# sourceMappingURL=chat.bootstrap.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"chat.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,sWAAsW,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-border: var(--ig-chat-header-border, var(--ig-gray-300));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--focused-secondary-color: var(--ig-chat-focused-secondary-color, hsl(from var(--ig-primary-500) h s l/0.38));--ig-theme: bootstrap}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--ig-theme: fluent}`;
|
|
2
|
+
export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--ig-theme: fluent}`;
|
|
3
3
|
//# sourceMappingURL=chat.fluent.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"chat.fluent.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.fluent.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,wUAAwU,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--background: var(--ig-chat-background, var(--ig-gray-900-contrast));--header-color: var(--ig-chat-header-color, var(--ig-gray-900));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-primary-500));--focused-border-color: var(--ig-chat-focused-border-color, var(--ig-primary-500));--ig-theme: fluent}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-
|
|
2
|
+
export const styles = css `:host{--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--box-background-hover: var(--ig-chat-box-background-hover, hsl(from var(--ig-gray-900) h s l/0.05));--focused-bottom-line-color: var(--ig-chat-focused-bottom-line-color, var(--ig-primary-400));--focused-text-color: var(--ig-chat-focused-text-color, var(--ig-gray-900));--ig-theme: indigo}`;
|
|
3
3
|
//# sourceMappingURL=chat.indigo.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"chat.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,wlBAAwlB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--header-color: var(--ig-chat-header-color, var(--ig-gray-800));--header-border: var(--ig-chat-header-border, var(--ig-primary-500));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-600));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-info-500));--box-background-hover: var(--ig-chat-box-background-hover, hsl(from var(--ig-gray-900) h s l/0.05));--focused-bottom-line-color: var(--ig-chat-focused-bottom-line-color, var(--ig-primary-400));--focused-text-color: var(--ig-chat-focused-text-color, var(--ig-gray-900));--ig-theme: indigo}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-
|
|
2
|
+
export const styles = css `:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--chat-input-border: var(--ig-chat-chat-input-border, var(--ig-gray-400));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500))}`;
|
|
3
3
|
//# sourceMappingURL=chat.shared.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.shared.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.shared.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"chat.shared.css.js","sourceRoot":"","sources":["../../../../../src/components/chat/themes/light/chat.shared.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,wzBAAwzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--background: var(--ig-chat-background, var(--ig-surface-500));--header-background: var(--ig-chat-header-background, var(--ig-surface-500));--header-color: var(--ig-chat-header-color, var(--ig-surface-500-contrast));--header-border: var(--ig-chat-header-border, var(--ig-transparent-500));--message-background: var(--ig-chat-message-background, var(--ig-gray-200));--message-color: var(--ig-chat-message-color, var(--ig-gray-800));--message-actions-color: var(--ig-chat-message-actions-color, var(--ig-gray-700));--image-background: var(--ig-chat-image-background, var(--ig-gray-100));--image-border: var(--ig-chat-image-border, var(--ig-gray-300));--chat-input-border: var(--ig-chat-chat-input-border, var(--ig-gray-400));--progress-indicator-color: var(--ig-chat-progress-indicator-color, var(--ig-secondary-500))}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:block}[part=attachments-container]{display:flex;flex-wrap:wrap;gap:1rem}[part=attachment]{flex:1 1;border-radius:.25rem;overflow:hidden;min-width:5rem;max-width:25rem}[part=attachment-header]{padding:.5rem .75rem .5rem 1rem;border-top-left-radius:inherit;border-top-right-radius:inherit}[part=attachment-content]{display:flex;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;max-height:15rem;overflow:hidden}[part=image-attachment]{width:100%;height:100%;border-radius:inherit;-o-object-fit:cover;object-fit:cover}[part=details]{display:flex;align-items:center;gap:.5rem}[part=file-name]{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}`;
|
|
2
|
+
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:block}[part=attachments-container]{display:flex;flex-wrap:wrap;gap:1rem}[part=attachment]{flex:1 1;border-radius:.25rem;overflow:hidden;min-width:5rem;max-width:25rem}[part="attachment sent"]{border-radius:.125rem;max-width:5rem}[part~=attachment-header]{padding:.5rem .75rem .5rem 1rem;border-top-left-radius:inherit;border-top-right-radius:inherit}[part="attachment-header sent"]{padding:.375rem 0 0}[part~=attachment-content]{display:flex;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;max-height:15rem;overflow:hidden}[part="attachment-content sent"]{border-top-left-radius:inherit;border-top-right-radius:inherit;width:4.875rem;aspect-ratio:1}[part=image-attachment]{width:100%;height:100%;border-radius:inherit;-o-object-fit:cover;object-fit:cover}[part=file-attachment]{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}[part=details]{display:flex;align-items:center;gap:.5rem}[part=file-name]{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}`;
|
|
3
3
|
//# sourceMappingURL=message-attachments.base.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-attachments.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/message-attachments.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"message-attachments.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/message-attachments.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,81EAA81E,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:block}[part=attachments-container]{display:flex;flex-wrap:wrap;gap:1rem}[part=attachment]{flex:1 1;border-radius:.25rem;overflow:hidden;min-width:5rem;max-width:25rem}[part=\"attachment sent\"]{border-radius:.125rem;max-width:5rem}[part~=attachment-header]{padding:.5rem .75rem .5rem 1rem;border-top-left-radius:inherit;border-top-right-radius:inherit}[part=\"attachment-header sent\"]{padding:.375rem 0 0}[part~=attachment-content]{display:flex;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;max-height:15rem;overflow:hidden}[part=\"attachment-content sent\"]{border-top-left-radius:inherit;border-top-right-radius:inherit;width:4.875rem;aspect-ratio:1}[part=image-attachment]{width:100%;height:100%;border-radius:inherit;-o-object-fit:cover;object-fit:cover}[part=file-attachment]{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}[part=details]{display:flex;align-items:center;gap:.5rem}[part=file-name]{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:block;
|
|
2
|
+
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:block;width:100%;max-width:49.5rem;padding-inline:1rem;padding-block:1rem 1.5rem}[part=message-list]{display:flex;flex-direction:column;gap:1.5rem;width:100%}[part=typing-indicator]{display:flex;align-items:center;gap:.125rem}[part=typing-dot]{display:flex;align-items:center;justify-content:center;width:.5rem;aspect-ratio:1}[part=typing-dot]::after{content:"";display:block;animation:blink 1.2s ease-in-out infinite;animation-fill-mode:both;width:.375rem;aspect-ratio:1;border-radius:50%}[part=typing-dot]:nth-child(2)::after{animation-delay:.2s;width:.25rem}[part=typing-dot]:nth-child(3)::after{animation-delay:.4s}[part=typing-dot]:nth-child(4)::after{animation-delay:.6s;width:.125rem}@keyframes blink{0%,100%{transform:scale(0.9)}25%,75%{transform:scale(1.05)}50%{transform:scale(1.1)}}`;
|
|
3
3
|
//# sourceMappingURL=message-list.base.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-list.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/message-list.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"message-list.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/message-list.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,ivDAAivD,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{display:block;width:100%;max-width:49.5rem;padding-inline:1rem;padding-block:1rem 1.5rem}[part=message-list]{display:flex;flex-direction:column;gap:1.5rem;width:100%}[part=typing-indicator]{display:flex;align-items:center;gap:.125rem}[part=typing-dot]{display:flex;align-items:center;justify-content:center;width:.5rem;aspect-ratio:1}[part=typing-dot]::after{content:\"\";display:block;animation:blink 1.2s ease-in-out infinite;animation-fill-mode:both;width:.375rem;aspect-ratio:1;border-radius:50%}[part=typing-dot]:nth-child(2)::after{animation-delay:.2s;width:.25rem}[part=typing-dot]:nth-child(3)::after{animation-delay:.4s}[part=typing-dot]:nth-child(4)::after{animation-delay:.6s;width:.125rem}@keyframes blink{0%,100%{transform:scale(0.9)}25%,75%{transform:scale(1.05)}50%{transform:scale(1.1)}}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}[part~=message-container]{
|
|
2
|
+
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}[part~=message-container]{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom);margin:0;display:flex;margin-inline-end:auto;flex-direction:column;gap:1rem}[part~=message-container] p{margin:0;padding:0}[part~=message-container] a{overflow-wrap:anywhere;color:var(--ig-primary-500)}[part~=message-container] pre,[part~=message-container] code{white-space:pre-wrap;word-wrap:break-word;overflow-x:auto}[part~=sent]{margin-inline-start:auto;margin-inline-end:unset;padding:.75rem 1rem;border-radius:1.5rem 1.5rem 0;max-width:36rem;width:-moz-fit-content;width:fit-content}`;
|
|
3
3
|
//# sourceMappingURL=message.base.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/message.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"message.base.css.js","sourceRoot":"","sources":["../../../../src/components/chat/themes/message.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,81DAA81D,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}[part~=message-container]{font-family:var(--ig-body-1-font-family, var(--ig-font-family));font-size:var(--ig-body-1-font-size);font-weight:var(--ig-body-1-font-weight);font-style:var(--ig-body-1-font-style);line-height:var(--ig-body-1-line-height);letter-spacing:var(--ig-body-1-letter-spacing);text-transform:var(--ig-body-1-text-transform);margin-top:var(--ig-body-1-margin-top);margin-bottom:var(--ig-body-1-margin-bottom);margin:0;display:flex;margin-inline-end:auto;flex-direction:column;gap:1rem}[part~=message-container] p{margin:0;padding:0}[part~=message-container] a{overflow-wrap:anywhere;color:var(--ig-primary-500)}[part~=message-container] pre,[part~=message-container] code{white-space:pre-wrap;word-wrap:break-word;overflow-x:auto}[part~=sent]{margin-inline-start:auto;margin-inline-end:unset;padding:.75rem 1rem;border-radius:1.5rem 1.5rem 0;max-width:36rem;width:-moz-fit-content;width:fit-content}`;\n"]}
|