igniteui-angular 21.0.2 → 21.0.3

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/chat/README.md ADDED
@@ -0,0 +1,93 @@
1
+
2
+ # IgxChat
3
+
4
+ **IgxChat** is a component that provides a chat interface, wrapping the **IgcChat** web component.
5
+
6
+ A walkthrough of how to get started can be found [here](https://www.infragistics.com/products/ignite-ui-angular/angular/components/chat)
7
+
8
+ # Usage
9
+
10
+ ```html
11
+ <igx-chat
12
+ [messages]="messages"
13
+ [draftMessage]="draft"
14
+ [options]="chatOptions"
15
+ [templates]="chatTemplates"
16
+ (messageCreated)="onMessageCreated($event)">
17
+ </igx-chat>
18
+ ```
19
+
20
+ # API Summary
21
+ The following tables summarize the **igx-chat** inputs, outputs and directives.
22
+
23
+ ### Inputs
24
+ The following inputs are available in the **igx-chat** component:
25
+
26
+ | Name | Type | Description |
27
+ | :--- | :--- | :--- |
28
+ | `messages` | `IgcChatMessage[]` | Array of chat messages to display |
29
+ | `draftMessage` | `{ text: string; attachments?: IgcChatMessageAttachment[] } \| undefined` | Draft message with text and optional attachments |
30
+ | `options` | `IgxChatOptions` | Configuration options for the chat component |
31
+ | `templates` | `IgxChatTemplates` | Custom templates for rendering chat elements |
32
+
33
+ ### Outputs
34
+ The following outputs are available in the **igx-chat** component:
35
+
36
+ | Name | Description | Parameters |
37
+ | :--- | :--- | :--- |
38
+ | `messageCreated` | Emitted when a new message is created | `IgcChatMessage` |
39
+ | `messageReact` | Emitted when a user reacts to a message | `IgcChatMessageReaction` |
40
+ | `attachmentClick` | Emitted when an attachment is clicked | `IgcChatMessageAttachment` |
41
+ | `attachmentDrag` | Emitted when attachment drag starts | `void` |
42
+ | `attachmentDrop` | Emitted when attachment is dropped | `void` |
43
+ | `typingChange` | Emitted when typing indicator state changes | `boolean` |
44
+ | `inputFocus` | Emitted when the input receives focus | `void` |
45
+ | `inputBlur` | Emitted when the input loses focus | `void` |
46
+ | `inputChange` | Emitted when the input value changes | `string` |
47
+
48
+ ### Directives
49
+ The following directives are available for type checking in templates:
50
+
51
+ | Name | Selector | Description |
52
+ | :--- | :--- | :--- |
53
+ | `IgxChatMessageContextDirective` | `[igxChatMessageContext]` | Provides type information for chat message template contexts |
54
+ | `IgxChatAttachmentContextDirective` | `[igxChatAttachmentContext]` | Provides type information for chat attachment template contexts |
55
+ | `IgxChatInputContextDirective` | `[igxChatInputContext]` | Provides type information for chat input template contexts |
56
+
57
+ # Chat Extras
58
+
59
+ The **chat-extras** module provides additional utilities for enhancing chat functionality.
60
+
61
+ ## MarkdownPipe
62
+
63
+ The `MarkdownPipe` transforms markdown text into HTML, allowing you to render formatted messages in the chat.
64
+
65
+ ### Usage
66
+
67
+ ```typescript
68
+ import { MarkdownPipe } from 'igniteui-angular/chat-extras';
69
+
70
+ @Component({
71
+ standalone: true,
72
+ imports: [IgxChatComponent, MarkdownPipe, AsyncPipe],
73
+ template: `
74
+ <igx-chat [messages]="messages" [templates]="templates">
75
+ <ng-template #renderer igxChatMessageContext let-message>
76
+ <div [innerHTML]="message.text | fromMarkdown | async"></div>
77
+ </ng-template>
78
+ </igx-chat>
79
+ `
80
+ })
81
+ ```
82
+
83
+ ### Supported Markdown Features
84
+
85
+ The pipe supports common markdown syntax including:
86
+ - **Bold** text (`**text**`)
87
+ - *Italic* text (`*text*`)
88
+ - Headings (`# H1`, `## H2`, etc.)
89
+ - Lists (ordered and unordered)
90
+ - Links (`[text](url)`)
91
+ - Code blocks and inline code
92
+ - Blockquotes
93
+ - And more...
@@ -7779,7 +7779,7 @@ class TooltipPositionStrategy extends AutoPositionStrategy {
7779
7779
  if (!tooltip) {
7780
7780
  return;
7781
7781
  }
7782
- const arrow = tooltip.querySelector('[data-arrow="true"]');
7782
+ const arrow = Array.from(tooltip.children).find(el => el.matches('[data-arrow="true"]'));
7783
7783
  // If display is none -> tooltipTarget's hasArrow is false
7784
7784
  if (!arrow || arrow.style.display === 'none') {
7785
7785
  return;