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.
Files changed (269) hide show
  1. package/components/accordion/accordion.js +1 -4
  2. package/components/accordion/accordion.js.map +1 -1
  3. package/components/button/themes/button/button.base.css.js +1 -1
  4. package/components/button/themes/button/button.base.css.js.map +1 -1
  5. package/components/button/themes/button/shared/button.common.css.js +1 -1
  6. package/components/button/themes/button/shared/button.common.css.js.map +1 -1
  7. package/components/button/themes/button/shared/button.fluent.css.js +1 -1
  8. package/components/button/themes/button/shared/button.fluent.css.js.map +1 -1
  9. package/components/button/themes/button/shared/button.indigo.css.js +1 -1
  10. package/components/button/themes/button/shared/button.indigo.css.js.map +1 -1
  11. package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
  12. package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
  13. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js +1 -1
  14. package/components/button/themes/icon-button/shared/icon-button.bootstrap.css.js.map +1 -1
  15. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js +1 -1
  16. package/components/button/themes/icon-button/shared/icon-button.fluent.css.js.map +1 -1
  17. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js +1 -1
  18. package/components/button/themes/icon-button/shared/icon-button.indigo.css.js.map +1 -1
  19. package/components/button/themes/icon-button/shared/icon-button.material.css.js +1 -1
  20. package/components/button/themes/icon-button/shared/icon-button.material.css.js.map +1 -1
  21. package/components/button-group/themes/shared/button/button.bootstrap.css.js +1 -1
  22. package/components/button-group/themes/shared/button/button.bootstrap.css.js.map +1 -1
  23. package/components/button-group/themes/shared/button/button.common.css.js +1 -1
  24. package/components/button-group/themes/shared/button/button.common.css.js.map +1 -1
  25. package/components/button-group/themes/shared/button/button.indigo.css.js +1 -1
  26. package/components/button-group/themes/shared/button/button.indigo.css.js.map +1 -1
  27. package/components/calendar/days-view/days-view.js +1 -3
  28. package/components/calendar/days-view/days-view.js.map +1 -1
  29. package/components/calendar/months-view/months-view.js +1 -3
  30. package/components/calendar/months-view/months-view.js.map +1 -1
  31. package/components/calendar/themes/year-month-view.base.css.js +1 -1
  32. package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
  33. package/components/calendar/years-view/years-view.js +1 -3
  34. package/components/calendar/years-view/years-view.js.map +1 -1
  35. package/components/carousel/carousel.js +0 -3
  36. package/components/carousel/carousel.js.map +1 -1
  37. package/components/chat/assets/file.png +0 -0
  38. package/components/chat/assets/json.png +0 -0
  39. package/components/chat/assets/link.png +0 -0
  40. package/components/chat/chat-input.d.ts +6 -22
  41. package/components/chat/chat-input.js +34 -163
  42. package/components/chat/chat-input.js.map +1 -1
  43. package/components/chat/chat-message-list.d.ts +5 -46
  44. package/components/chat/chat-message-list.js +16 -105
  45. package/components/chat/chat-message-list.js.map +1 -1
  46. package/components/chat/chat-message.d.ts +8 -18
  47. package/components/chat/chat-message.js +40 -29
  48. package/components/chat/chat-message.js.map +1 -1
  49. package/components/chat/chat-renderer.d.ts +14 -0
  50. package/components/chat/chat-renderer.js +39 -0
  51. package/components/chat/chat-renderer.js.map +1 -0
  52. package/components/chat/chat-state.d.ts +116 -21
  53. package/components/chat/chat-state.js +446 -75
  54. package/components/chat/chat-state.js.map +1 -1
  55. package/components/chat/chat.d.ts +27 -14
  56. package/components/chat/chat.js +145 -63
  57. package/components/chat/chat.js.map +1 -1
  58. package/components/chat/markdown-renderer.d.ts +72 -0
  59. package/components/chat/markdown-renderer.js +71 -0
  60. package/components/chat/markdown-renderer.js.map +1 -0
  61. package/components/chat/message-attachments.d.ts +0 -7
  62. package/components/chat/message-attachments.js +3 -81
  63. package/components/chat/message-attachments.js.map +1 -1
  64. package/components/chat/plain-text-renderer.d.ts +15 -0
  65. package/components/chat/plain-text-renderer.js +7 -0
  66. package/components/chat/plain-text-renderer.js.map +1 -0
  67. package/components/chat/themes/chat.base.css.js +1 -1
  68. package/components/chat/themes/chat.base.css.js.map +1 -1
  69. package/components/chat/themes/dark/chat.bootstrap.css.js +1 -1
  70. package/components/chat/themes/dark/chat.bootstrap.css.js.map +1 -1
  71. package/components/chat/themes/dark/chat.fluent.css.js +1 -1
  72. package/components/chat/themes/dark/chat.fluent.css.js.map +1 -1
  73. package/components/chat/themes/dark/chat.indigo.css.js +1 -1
  74. package/components/chat/themes/dark/chat.indigo.css.js.map +1 -1
  75. package/components/chat/themes/input.base.css.js +1 -1
  76. package/components/chat/themes/input.base.css.js.map +1 -1
  77. package/components/chat/themes/light/chat.bootstrap.css.js +1 -1
  78. package/components/chat/themes/light/chat.bootstrap.css.js.map +1 -1
  79. package/components/chat/themes/light/chat.fluent.css.js +1 -1
  80. package/components/chat/themes/light/chat.fluent.css.js.map +1 -1
  81. package/components/chat/themes/light/chat.indigo.css.js +1 -1
  82. package/components/chat/themes/light/chat.indigo.css.js.map +1 -1
  83. package/components/chat/themes/light/chat.shared.css.js +1 -1
  84. package/components/chat/themes/light/chat.shared.css.js.map +1 -1
  85. package/components/chat/themes/message-attachments.base.css.js +1 -1
  86. package/components/chat/themes/message-attachments.base.css.js.map +1 -1
  87. package/components/chat/themes/message-list.base.css.js +1 -1
  88. package/components/chat/themes/message-list.base.css.js.map +1 -1
  89. package/components/chat/themes/message.base.css.js +1 -1
  90. package/components/chat/themes/message.base.css.js.map +1 -1
  91. package/components/chat/themes/message.d.ts +2 -0
  92. package/components/chat/themes/message.js +28 -0
  93. package/components/chat/themes/message.js.map +1 -0
  94. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js +3 -0
  95. package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js.map +1 -0
  96. package/components/chat/themes/shared/chat-message/chat-message.common.css.d.ts +1 -0
  97. package/components/chat/themes/shared/chat-message/chat-message.common.css.js +3 -0
  98. package/components/chat/themes/shared/chat-message/chat-message.common.css.js.map +1 -0
  99. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.d.ts +1 -0
  100. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js +3 -0
  101. package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js.map +1 -0
  102. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.d.ts +1 -0
  103. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js +3 -0
  104. package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js.map +1 -0
  105. package/components/chat/themes/shared/chat.bootstrap.css.d.ts +1 -0
  106. package/components/chat/themes/shared/chat.bootstrap.css.js +3 -0
  107. package/components/chat/themes/shared/chat.bootstrap.css.js.map +1 -0
  108. package/components/chat/themes/shared/chat.indigo.css.d.ts +1 -0
  109. package/components/chat/themes/shared/chat.indigo.css.js +3 -0
  110. package/components/chat/themes/shared/chat.indigo.css.js.map +1 -0
  111. package/components/chat/themes/shared/input/input.common.css.js +1 -1
  112. package/components/chat/themes/shared/input/input.common.css.js.map +1 -1
  113. package/components/chat/themes/shared/input/input.indigo.css.js +1 -1
  114. package/components/chat/themes/shared/input/input.indigo.css.js.map +1 -1
  115. package/components/chat/themes/shared/message-attachments.common.css.js +1 -1
  116. package/components/chat/themes/shared/message-attachments.common.css.js.map +1 -1
  117. package/components/chat/themes/shared/message-list.common.css.js +1 -1
  118. package/components/chat/themes/shared/message-list.common.css.js.map +1 -1
  119. package/components/chat/themes/themes.js +6 -4
  120. package/components/chat/themes/themes.js.map +1 -1
  121. package/components/chat/types.d.ts +72 -18
  122. package/components/chat/types.js +7 -0
  123. package/components/chat/types.js.map +1 -1
  124. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js +1 -1
  125. package/components/checkbox/themes/shared/switch/switch.bootstrap.css.js.map +1 -1
  126. package/components/checkbox/themes/shared/switch/switch.common.css.js +1 -1
  127. package/components/checkbox/themes/shared/switch/switch.common.css.js.map +1 -1
  128. package/components/checkbox/themes/shared/switch/switch.fluent.css.js +1 -1
  129. package/components/checkbox/themes/shared/switch/switch.fluent.css.js.map +1 -1
  130. package/components/checkbox/themes/shared/switch/switch.indigo.css.js +1 -1
  131. package/components/checkbox/themes/shared/switch/switch.indigo.css.js.map +1 -1
  132. package/components/chip/themes/chip.base.css.js +1 -1
  133. package/components/chip/themes/chip.base.css.js.map +1 -1
  134. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  135. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  136. package/components/combo/controllers/navigation.js +1 -1
  137. package/components/combo/controllers/navigation.js.map +1 -1
  138. package/components/combo/themes/combo-item.base.css.js +1 -1
  139. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  140. package/components/combo/themes/combo.base.css.js +1 -1
  141. package/components/combo/themes/combo.base.css.js.map +1 -1
  142. package/components/combo/themes/shared/combo.bootstrap.css.js +1 -1
  143. package/components/combo/themes/shared/combo.bootstrap.css.js.map +1 -1
  144. package/components/combo/themes/shared/combo.common.css.js +1 -1
  145. package/components/combo/themes/shared/combo.common.css.js.map +1 -1
  146. package/components/combo/themes/shared/combo.fluent.css.js +1 -1
  147. package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
  148. package/components/combo/themes/shared/combo.indigo.css.js +1 -1
  149. package/components/combo/themes/shared/combo.indigo.css.js.map +1 -1
  150. package/components/combo/themes/shared/combo.material.css.js +1 -1
  151. package/components/combo/themes/shared/combo.material.css.js.map +1 -1
  152. package/components/common/controllers/key-bindings.js +4 -3
  153. package/components/common/controllers/key-bindings.js.map +1 -1
  154. package/components/common/i18n/chat.resources.d.ts +8 -0
  155. package/components/common/i18n/chat.resources.js +8 -0
  156. package/components/common/i18n/chat.resources.js.map +1 -0
  157. package/components/common/util.d.ts +14 -0
  158. package/components/common/util.js +51 -1
  159. package/components/common/util.js.map +1 -1
  160. package/components/date-picker/date-picker.js +2 -2
  161. package/components/date-picker/date-picker.js.map +1 -1
  162. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  163. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  164. package/components/date-range-picker/date-range-picker.js +0 -1
  165. package/components/date-range-picker/date-range-picker.js.map +1 -1
  166. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js +1 -1
  167. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js.map +1 -1
  168. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js +1 -1
  169. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js.map +1 -1
  170. package/components/date-time-input/date-time-input.js +1 -1
  171. package/components/date-time-input/date-time-input.js.map +1 -1
  172. package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
  173. package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
  174. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  175. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  176. package/components/dropdown/themes/shared/group/dropdown-group.fluent.css.js +1 -1
  177. package/components/dropdown/themes/shared/group/dropdown-group.fluent.css.js.map +1 -1
  178. package/components/dropdown/themes/shared/header/dropdown-header.common.css.js +1 -1
  179. package/components/dropdown/themes/shared/header/dropdown-header.common.css.js.map +1 -1
  180. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js +1 -1
  181. package/components/dropdown/themes/shared/header/dropdown-header.indigo.css.js.map +1 -1
  182. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
  183. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
  184. package/components/expansion-panel/expansion-panel.js +0 -1
  185. package/components/expansion-panel/expansion-panel.js.map +1 -1
  186. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  187. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  188. package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js +1 -1
  189. package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js.map +1 -1
  190. package/components/file-input/themes/shared/file-input.bootstrap.css.js +1 -1
  191. package/components/file-input/themes/shared/file-input.bootstrap.css.js.map +1 -1
  192. package/components/input/themes/shared/input.bootstrap.css.js +1 -1
  193. package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
  194. package/components/input/themes/shared/input.common.css.js +1 -1
  195. package/components/input/themes/shared/input.common.css.js.map +1 -1
  196. package/components/input/themes/shared/input.fluent.css.js +1 -1
  197. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  198. package/components/input/themes/shared/input.indigo.css.js +1 -1
  199. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  200. package/components/input/themes/shared/input.material.css.js +1 -1
  201. package/components/input/themes/shared/input.material.css.js.map +1 -1
  202. package/components/list/themes/header.base.css.js +1 -1
  203. package/components/list/themes/header.base.css.js.map +1 -1
  204. package/components/list/themes/item.base.css.js +1 -1
  205. package/components/list/themes/item.base.css.js.map +1 -1
  206. package/components/list/themes/shared/header/list-header.indigo.css.js +1 -1
  207. package/components/list/themes/shared/header/list-header.indigo.css.js.map +1 -1
  208. package/components/list/themes/shared/item/list-item.indigo.css.js +1 -1
  209. package/components/list/themes/shared/item/list-item.indigo.css.js.map +1 -1
  210. package/components/rating/rating.js +0 -1
  211. package/components/rating/rating.js.map +1 -1
  212. package/components/select/themes/dark/select.bootstrap.css.js +1 -1
  213. package/components/select/themes/dark/select.bootstrap.css.js.map +1 -1
  214. package/components/select/themes/light/select.bootstrap.css.js +1 -1
  215. package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
  216. package/components/select/themes/shared/select.bootstrap.css.js +1 -1
  217. package/components/select/themes/shared/select.bootstrap.css.js.map +1 -1
  218. package/components/select/themes/shared/select.common.css.js +1 -1
  219. package/components/select/themes/shared/select.common.css.js.map +1 -1
  220. package/components/select/themes/shared/select.material.css.js +1 -1
  221. package/components/select/themes/shared/select.material.css.js.map +1 -1
  222. package/components/slider/slider-base.js +0 -1
  223. package/components/slider/slider-base.js.map +1 -1
  224. package/components/tabs/tabs.js +0 -1
  225. package/components/tabs/tabs.js.map +1 -1
  226. package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
  227. package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
  228. package/components/textarea/themes/shared/textarea.common.css.js +1 -1
  229. package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
  230. package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
  231. package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
  232. package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
  233. package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
  234. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  235. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  236. package/components/textarea/themes/textarea.base.css.js +1 -1
  237. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  238. package/components/tree/themes/item.base.css.js +1 -1
  239. package/components/tree/themes/item.base.css.js.map +1 -1
  240. package/components/tree/themes/shared/item.indigo.css.js +1 -1
  241. package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
  242. package/components/tree/tree.js +3 -1
  243. package/components/tree/tree.js.map +1 -1
  244. package/components/tree/tree.navigation.js +3 -3
  245. package/components/tree/tree.navigation.js.map +1 -1
  246. package/components/tree/tree.selection.js +6 -2
  247. package/components/tree/tree.selection.js.map +1 -1
  248. package/custom-elements.json +5131 -4707
  249. package/igniteui-webcomponents.css-data.json +1 -1
  250. package/igniteui-webcomponents.html-data.json +1 -1
  251. package/index.d.ts +3 -0
  252. package/index.js +3 -0
  253. package/index.js.map +1 -1
  254. package/package.json +1 -1
  255. package/themes/dark/bootstrap.css +1 -1
  256. package/themes/dark/fluent.css +1 -1
  257. package/themes/dark/indigo.css +1 -1
  258. package/themes/dark/material.css +1 -1
  259. package/themes/light/bootstrap.css +1 -1
  260. package/themes/light/fluent.css +1 -1
  261. package/themes/light/indigo.css +1 -1
  262. package/themes/light/material.css +1 -1
  263. package/web-types.json +2 -2
  264. package/components/chat/markdown-util.d.ts +0 -2
  265. package/components/chat/markdown-util.js +0 -22
  266. package/components/chat/markdown-util.js.map +0 -1
  267. package/components/chat/themes/shared/chat-message.common.css.js +0 -3
  268. package/components/chat/themes/shared/chat-message.common.css.js.map +0 -1
  269. /package/components/chat/themes/shared/{chat-message.common.css.d.ts → chat-message/chat-message.bootstrap.css.d.ts} +0 -0
@@ -1,7 +1,9 @@
1
+ import { type Ref } from 'lit/directives/ref.js';
1
2
  import type IgcTextareaComponent from '../textarea/textarea.js';
2
3
  import type IgcChatComponent from './chat.js';
3
4
  import type { IgcChatComponentEventMap } from './chat.js';
4
- import type { IgcChatOptions, IgcMessage, IgcMessageAttachment } from './types.js';
5
+ import { DefaultChatRenderer } from './chat-renderer.js';
6
+ import { type IgcChatOptions, type IgcChatTemplates, type IgcMessage, type IgcMessageAttachment } from './types.js';
5
7
  /**
6
8
  * Internal state manager for the `<igc-chat>` component.
7
9
  *
@@ -13,8 +15,6 @@ export declare class ChatState {
13
15
  private _textArea;
14
16
  /** The current list of messages */
15
17
  private _messages;
16
- /** Sorted copy of messages by timestamp */
17
- private _sortedMessages;
18
18
  /** Chat options/configuration */
19
19
  private _options?;
20
20
  /** List of current input attachments */
@@ -25,18 +25,90 @@ export declare class ChatState {
25
25
  * Cache of accepted file types, organized into extensions, mimeTypes, and wildcardTypes
26
26
  */
27
27
  private _acceptedTypesCache;
28
+ /** Default position of the suggestions */
28
29
  private _suggestionsPosition;
29
- /**
30
- * Array of message IDs sorted by timestamp ascending.
31
- */
32
- get sortedMessagesIds(): string[];
30
+ /** Default time in milliseconds before dispatching stop typing event */
31
+ private _stopTypingDelay;
32
+ private _isTyping;
33
+ private _lastTyped;
34
+ private _fileIcon;
35
+ private _jsonIcon;
36
+ private _linkIcon;
37
+ private readonly _textAreaRef;
38
+ private readonly _attachmentsButtonInputRef;
39
+ private readonly _sharedTooltipRef;
40
+ private _chatRenderer?;
41
+ private resourceStrings;
42
+ /** Default templates of the chat components */
43
+ private _defaultTemplates;
44
+ /** The tooltip component used for showing action tooltips. */
45
+ private get _sharedTooltip();
46
+ private getIconName;
47
+ /**
48
+ * Default attachments area template used when no custom template is provided.
49
+ * Renders the list of input attachments as chips.
50
+ * @returns TemplateResult containing the attachments area
51
+ */
52
+ private renderDefaultAttachmentsArea;
53
+ /**
54
+ * Default text area template used when no custom template is provided.
55
+ * Renders a text area for user input.
56
+ * @returns TemplateResult containing the text area
57
+ */
58
+ private renderDefaultTextArea;
59
+ /**
60
+ * Default file upload button template used when no custom template is provided.
61
+ * Renders a file input for attaching files.
62
+ * @returns TemplateResult containing the file upload button
63
+ */
64
+ private renderDefaultFileUploadButton;
65
+ /**
66
+ * Default send button template used when no custom template is provided.
67
+ * Renders a send button that submits the current input value and attachments.
68
+ * @returns TemplateResult containing the send button
69
+ */
70
+ private renderDefaultSendButton;
71
+ private renderDefaultActionsArea;
72
+ /**
73
+ * Default typing indicator template used when no custom template is provided.
74
+ * Renders a simple typing indicator with three dots.
75
+ * @returns TemplateResult containing the typing indicator
76
+ */
77
+ private renderDefaultTypingIndicator;
78
+ /**
79
+ * Default message template used when no custom template is provided.
80
+ * Renders the message text, sanitized for security.
81
+ * @param message The chat message to render
82
+ * @returns TemplateResult containing the rendered message
83
+ */
84
+ private renderDefaultMessageTemplate;
85
+ private renderDefaultAttachmentHeaderText;
86
+ private handleHeaderClick;
87
+ /**
88
+ * Default attachment header template used when no custom template is provided.
89
+ * Renders the attachment icon and name.
90
+ * @param attachment The message attachment to render
91
+ * @returns TemplateResult containing the rendered attachment header
92
+ */
93
+ private renderDefaultAttachmentHeader;
94
+ /**
95
+ * Default attachment content template used when no custom template is provided.
96
+ * Renders the attachment content based on its type.
97
+ * @param attachment The message attachment to render
98
+ * @returns TemplateResult containing the rendered attachment content
99
+ */
100
+ private renderDefaultAttachmentContent;
101
+ private renderDefaultMessageActionsTemplate;
102
+ private handleMessageActionClick;
103
+ private renderDefaultAttachmentTemplate;
104
+ private renderDefaultAttachmentsTemplate;
105
+ private showTooltip;
33
106
  /**
34
107
  * Gets the list of chat messages.
35
108
  */
36
109
  get messages(): IgcMessage[];
37
110
  /**
38
111
  * Sets the list of chat messages.
39
- * Also sorts messages by timestamp and requests host update.
40
112
  */
41
113
  set messages(value: IgcMessage[]);
42
114
  /**
@@ -55,6 +127,10 @@ export declare class ChatState {
55
127
  * Gets the current suggestionsPosition from options or returns the default value 'below-messages'.
56
128
  */
57
129
  get suggestionsPosition(): string;
130
+ /**
131
+ * Gets the current stopTypingDelay from options or returns the default value `3000`.
132
+ */
133
+ get stopTypingDelay(): number;
58
134
  /**
59
135
  * Gets the text area component.
60
136
  */
@@ -63,6 +139,10 @@ export declare class ChatState {
63
139
  * Sets the text area component.
64
140
  */
65
141
  set textArea(value: IgcTextareaComponent);
142
+ /**
143
+ * Gets the text area component.
144
+ */
145
+ get textAreaRef(): Ref<IgcTextareaComponent>;
66
146
  /**
67
147
  * Gets the list of attachments currently attached to input.
68
148
  */
@@ -79,6 +159,18 @@ export declare class ChatState {
79
159
  * Sets the current input value and requests host update.
80
160
  */
81
161
  set inputValue(value: string);
162
+ /** Returns all default templates applied in the chat component. */
163
+ get defaultTemplates(): Required<IgcChatTemplates>;
164
+ /** Sets the default templates applied in the chat component. */
165
+ set defaultTemplates(templates: Required<IgcChatTemplates>);
166
+ get mergedTemplates(): Required<IgcChatTemplates>;
167
+ get chatRenderer(): DefaultChatRenderer | undefined;
168
+ /**
169
+ * Handles input text changes.
170
+ * Updates internal inputValue and emits 'igcInputChange' event.
171
+ * @param e Input event from the text area
172
+ */
173
+ private handleInput;
82
174
  /**
83
175
  * Creates an instance of ChatState.
84
176
  * @param chat The host `<igc-chat>` component.
@@ -90,44 +182,47 @@ export declare class ChatState {
90
182
  * @param args Event detail or options
91
183
  * @returns true if event was not canceled, false otherwise
92
184
  */
93
- emitEvent(name: keyof IgcChatComponentEventMap, args?: any): boolean;
94
- /**
95
- * Handles input text changes.
96
- * Updates internal inputValue and emits 'igcInputChange' event.
97
- * @param value New input value
98
- */
99
- handleInputChange(value: string): void;
185
+ emitEvent: (name: keyof IgcChatComponentEventMap, args?: any) => boolean;
100
186
  /**
101
187
  * Adds a new chat message.
102
188
  * Emits 'igcMessageCreated' event which can be canceled to prevent adding.
103
189
  * Clears input value and attachments on success.
104
190
  * @param message Partial message object with optional id, sender, timestamp
105
191
  */
106
- addMessage(message: {
192
+ addMessage: (message: {
107
193
  id?: string;
108
194
  text: string;
109
195
  sender?: string;
110
196
  timestamp?: Date;
111
197
  attachments?: IgcMessageAttachment[];
112
- }): void;
198
+ }) => void;
113
199
  /**
114
200
  * Adds files as attachments to the input.
115
201
  * Emits 'igcAttachmentChange' event which can be canceled to prevent adding.
116
202
  * @param files Array of File objects to attach
117
203
  */
118
204
  attachFiles(files: File[]): void;
205
+ private getURL;
206
+ private isImageAttachment;
207
+ private _fileIconMap;
208
+ private getFileExtension;
209
+ handleKeyDown: (e: KeyboardEvent) => void;
210
+ private handleFocus;
211
+ private handleBlur;
212
+ private sendMessage;
213
+ private handleFileUpload;
119
214
  /**
120
215
  * Removes an attachment by index.
121
216
  * Emits 'igcAttachmentChange' event which can be canceled to prevent removal.
122
217
  * @param index Index of the attachment to remove
123
218
  */
124
- removeAttachment(index: number): void;
219
+ private removeAttachment;
125
220
  /**
126
221
  * Handles when a suggestion is clicked.
127
222
  * Adds the suggestion as a new message and focuses the text area.
128
223
  * @param suggestion The suggestion string clicked
129
224
  */
130
- handleSuggestionClick(suggestion: string): void;
225
+ handleSuggestionClick: (suggestion: string) => void;
131
226
  /**
132
227
  * Updates the chat options partially.
133
228
  * @param options Partial options to merge with current options
@@ -137,14 +232,14 @@ export declare class ChatState {
137
232
  * Updates the internal cache for accepted file types.
138
233
  * Parses the acceptedFiles string option into extensions, mimeTypes, and wildcard types.
139
234
  */
140
- updateAcceptedTypesCache(): void;
235
+ updateAcceptedTypesCache: () => void;
141
236
  /**
142
237
  * Checks if a file's type or extension is accepted by the chat's acceptedFiles setting.
143
238
  * @param file File object to check
144
239
  * @param type Optional MIME type override if no file provided
145
240
  * @returns True if accepted, false otherwise
146
241
  */
147
- isFileTypeAccepted(file: File, type?: string): boolean;
242
+ isFileTypeAccepted: (file: File, type?: string) => boolean;
148
243
  /**
149
244
  * Checks if a slot is empty.
150
245
  * @param name Slot name to check