igniteui-webcomponents 6.3.0-alpha.1 → 6.3.0-beta.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 (561) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/components/accordion/accordion.js +3 -4
  3. package/components/accordion/accordion.js.map +1 -1
  4. package/components/accordion/themes/accordion.base.css.js +1 -1
  5. package/components/accordion/themes/accordion.base.css.js.map +1 -1
  6. package/components/avatar/avatar.js +3 -4
  7. package/components/avatar/avatar.js.map +1 -1
  8. package/components/badge/badge.js +3 -4
  9. package/components/badge/badge.js.map +1 -1
  10. package/components/banner/banner.js +3 -4
  11. package/components/banner/banner.js.map +1 -1
  12. package/components/banner/themes/banner.base.css.js +1 -1
  13. package/components/banner/themes/banner.base.css.js.map +1 -1
  14. package/components/banner/themes/shared/banner.bootstrap.css.js +1 -1
  15. package/components/banner/themes/shared/banner.bootstrap.css.js.map +1 -1
  16. package/components/banner/themes/shared/banner.fluent.css.js +1 -1
  17. package/components/banner/themes/shared/banner.fluent.css.js.map +1 -1
  18. package/components/banner/themes/shared/banner.indigo.css.js +1 -1
  19. package/components/banner/themes/shared/banner.indigo.css.js.map +1 -1
  20. package/components/banner/themes/shared/banner.material.css.js +1 -1
  21. package/components/banner/themes/shared/banner.material.css.js.map +1 -1
  22. package/components/button/button-base.js +1 -1
  23. package/components/button/button-base.js.map +1 -1
  24. package/components/button/button.js +3 -4
  25. package/components/button/button.js.map +1 -1
  26. package/components/button/icon-button.js +3 -4
  27. package/components/button/icon-button.js.map +1 -1
  28. package/components/button/themes/button/button.base.css.js +1 -1
  29. package/components/button/themes/button/button.base.css.js.map +1 -1
  30. package/components/button/themes/button/shared/button.common.css.js +1 -1
  31. package/components/button/themes/button/shared/button.common.css.js.map +1 -1
  32. package/components/button/themes/button/shared/button.fluent.css.js +1 -1
  33. package/components/button/themes/button/shared/button.fluent.css.js.map +1 -1
  34. package/components/button/themes/button/shared/button.indigo.css.js +1 -1
  35. package/components/button/themes/button/shared/button.indigo.css.js.map +1 -1
  36. package/components/button-group/button-group.js +3 -4
  37. package/components/button-group/button-group.js.map +1 -1
  38. package/components/button-group/toggle-button.js +4 -3
  39. package/components/button-group/toggle-button.js.map +1 -1
  40. package/components/calendar/calendar.d.ts +1 -1
  41. package/components/calendar/calendar.js +3 -4
  42. package/components/calendar/calendar.js.map +1 -1
  43. package/components/calendar/days-view/days-view.js +4 -3
  44. package/components/calendar/days-view/days-view.js.map +1 -1
  45. package/components/calendar/months-view/months-view.js +4 -3
  46. package/components/calendar/months-view/months-view.js.map +1 -1
  47. package/components/calendar/themes/calendar.base.css.js +1 -1
  48. package/components/calendar/themes/calendar.base.css.js.map +1 -1
  49. package/components/calendar/themes/days-view.base.css.js +1 -1
  50. package/components/calendar/themes/days-view.base.css.js.map +1 -1
  51. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js +1 -1
  52. package/components/calendar/themes/shared/bootstrap/calendar.bootstrap.css.js.map +1 -1
  53. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js +1 -1
  54. package/components/calendar/themes/shared/bootstrap/days-view.bootstrap.css.js.map +1 -1
  55. package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js +1 -1
  56. package/components/calendar/themes/shared/bootstrap/year-month-view.bootstrap.css.js.map +1 -1
  57. package/components/calendar/themes/shared/fluent/calendar.fluent.css.js +1 -1
  58. package/components/calendar/themes/shared/fluent/calendar.fluent.css.js.map +1 -1
  59. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js +1 -1
  60. package/components/calendar/themes/shared/indigo/calendar.indigo.css.js.map +1 -1
  61. package/components/calendar/themes/shared/material/calendar.material.css.js +1 -1
  62. package/components/calendar/themes/shared/material/calendar.material.css.js.map +1 -1
  63. package/components/calendar/themes/year-month-view.base.css.js +1 -1
  64. package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
  65. package/components/calendar/years-view/years-view.js +4 -3
  66. package/components/calendar/years-view/years-view.js.map +1 -1
  67. package/components/card/card.actions.js +3 -4
  68. package/components/card/card.actions.js.map +1 -1
  69. package/components/card/card.content.js +3 -4
  70. package/components/card/card.content.js.map +1 -1
  71. package/components/card/card.header.js +3 -4
  72. package/components/card/card.header.js.map +1 -1
  73. package/components/card/card.js +3 -4
  74. package/components/card/card.js.map +1 -1
  75. package/components/card/card.media.js +3 -4
  76. package/components/card/card.media.js.map +1 -1
  77. package/components/card/themes/card.actions.base.css.js +1 -1
  78. package/components/card/themes/card.actions.base.css.js.map +1 -1
  79. package/components/card/themes/card.content.base.css.js +1 -1
  80. package/components/card/themes/card.content.base.css.js.map +1 -1
  81. package/components/card/themes/card.header.base.css.js +1 -1
  82. package/components/card/themes/card.header.base.css.js.map +1 -1
  83. package/components/card/themes/shared/actions/card.actions.bootstrap.css.js +1 -1
  84. package/components/card/themes/shared/actions/card.actions.bootstrap.css.js.map +1 -1
  85. package/components/card/themes/shared/actions/card.actions.indigo.css.js +1 -1
  86. package/components/card/themes/shared/actions/card.actions.indigo.css.js.map +1 -1
  87. package/components/card/themes/shared/container/card.bootstrap.css.js +1 -1
  88. package/components/card/themes/shared/container/card.bootstrap.css.js.map +1 -1
  89. package/components/card/themes/shared/container/card.indigo.css.js +1 -1
  90. package/components/card/themes/shared/container/card.indigo.css.js.map +1 -1
  91. package/components/card/themes/shared/content/card.content.bootstrap.css.js +1 -1
  92. package/components/card/themes/shared/content/card.content.bootstrap.css.js.map +1 -1
  93. package/components/card/themes/shared/header/card.header.fluent.css.js +1 -1
  94. package/components/card/themes/shared/header/card.header.fluent.css.js.map +1 -1
  95. package/components/card/themes/shared/header/card.header.indigo.css.js +1 -1
  96. package/components/card/themes/shared/header/card.header.indigo.css.js.map +1 -1
  97. package/components/carousel/carousel-indicator-container.js +3 -4
  98. package/components/carousel/carousel-indicator-container.js.map +1 -1
  99. package/components/carousel/carousel-indicator.js +3 -4
  100. package/components/carousel/carousel-indicator.js.map +1 -1
  101. package/components/carousel/carousel-slide.js +3 -4
  102. package/components/carousel/carousel-slide.js.map +1 -1
  103. package/components/carousel/carousel.js +3 -4
  104. package/components/carousel/carousel.js.map +1 -1
  105. package/components/carousel/themes/carousel.base.css.js +1 -1
  106. package/components/carousel/themes/carousel.base.css.js.map +1 -1
  107. package/components/carousel/themes/shared/carousel.indigo.css.js +1 -1
  108. package/components/carousel/themes/shared/carousel.indigo.css.js.map +1 -1
  109. package/components/chat/chat-input.d.ts +47 -11
  110. package/components/chat/chat-input.js +192 -78
  111. package/components/chat/chat-input.js.map +1 -1
  112. package/components/chat/chat-message.d.ts +12 -12
  113. package/components/chat/chat-message.js +129 -31
  114. package/components/chat/chat-message.js.map +1 -1
  115. package/components/chat/chat-state.d.ts +21 -141
  116. package/components/chat/chat-state.js +64 -408
  117. package/components/chat/chat-state.js.map +1 -1
  118. package/components/chat/chat.d.ts +39 -69
  119. package/components/chat/chat.js +188 -132
  120. package/components/chat/chat.js.map +1 -1
  121. package/components/chat/extras/markdown-renderer.d.ts +26 -0
  122. package/components/chat/extras/markdown-renderer.js +44 -0
  123. package/components/chat/extras/markdown-renderer.js.map +1 -0
  124. package/components/chat/message-attachments.d.ts +21 -3
  125. package/components/chat/message-attachments.js +105 -20
  126. package/components/chat/message-attachments.js.map +1 -1
  127. package/components/chat/themes/attachments.d.ts +2 -0
  128. package/components/chat/themes/attachments.js +14 -0
  129. package/components/chat/themes/attachments.js.map +1 -0
  130. package/components/chat/themes/chat.base.css.js +1 -1
  131. package/components/chat/themes/chat.base.css.js.map +1 -1
  132. package/components/chat/themes/dark/chat.indigo.css.js +1 -1
  133. package/components/chat/themes/dark/chat.indigo.css.js.map +1 -1
  134. package/components/chat/themes/input.base.css.js +1 -1
  135. package/components/chat/themes/input.base.css.js.map +1 -1
  136. package/components/chat/themes/light/chat.indigo.css.js +1 -1
  137. package/components/chat/themes/light/chat.indigo.css.js.map +1 -1
  138. package/components/chat/themes/light/chat.shared.css.js +1 -1
  139. package/components/chat/themes/light/chat.shared.css.js.map +1 -1
  140. package/components/chat/themes/message-attachments.base.css.js +1 -1
  141. package/components/chat/themes/message-attachments.base.css.js.map +1 -1
  142. package/components/chat/themes/message.base.css.js +1 -1
  143. package/components/chat/themes/message.base.css.js.map +1 -1
  144. package/components/chat/themes/shared/chat.bootstrap.css.js +1 -1
  145. package/components/chat/themes/shared/chat.bootstrap.css.js.map +1 -1
  146. package/components/chat/themes/shared/chat.common.css.js +1 -1
  147. package/components/chat/themes/shared/chat.common.css.js.map +1 -1
  148. package/components/chat/themes/shared/chat.fluent.css.js +3 -0
  149. package/components/chat/themes/shared/chat.fluent.css.js.map +1 -0
  150. package/components/chat/themes/shared/chat.indigo.css.js +1 -1
  151. package/components/chat/themes/shared/chat.indigo.css.js.map +1 -1
  152. package/components/chat/themes/shared/input/input.bootstrap.css.js +1 -1
  153. package/components/chat/themes/shared/input/input.bootstrap.css.js.map +1 -1
  154. package/components/chat/themes/shared/input/input.fluent.css.js +1 -1
  155. package/components/chat/themes/shared/input/input.fluent.css.js.map +1 -1
  156. package/components/chat/themes/shared/input/input.indigo.css.js +1 -1
  157. package/components/chat/themes/shared/input/input.indigo.css.js.map +1 -1
  158. package/components/chat/themes/shared/input/input.material.css.js +1 -1
  159. package/components/chat/themes/shared/input/input.material.css.js.map +1 -1
  160. package/components/chat/themes/shared/message-attachments/message-attachments.common.css.js +3 -0
  161. package/components/chat/themes/shared/message-attachments/message-attachments.common.css.js.map +1 -0
  162. package/components/chat/themes/shared/message-attachments/message-attachments.indigo.css.js +3 -0
  163. package/components/chat/themes/shared/message-attachments/message-attachments.indigo.css.js.map +1 -0
  164. package/components/chat/themes/themes.js +3 -2
  165. package/components/chat/themes/themes.js.map +1 -1
  166. package/components/chat/types.d.ts +37 -133
  167. package/components/chat/types.js +1 -14
  168. package/components/chat/types.js.map +1 -1
  169. package/components/chat/utils.d.ts +17 -0
  170. package/components/chat/utils.js +94 -0
  171. package/components/chat/utils.js.map +1 -0
  172. package/components/checkbox/checkbox-base.d.ts +1 -1
  173. package/components/checkbox/checkbox.js +3 -4
  174. package/components/checkbox/checkbox.js.map +1 -1
  175. package/components/checkbox/switch.js +3 -4
  176. package/components/checkbox/switch.js.map +1 -1
  177. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
  178. package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
  179. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
  180. package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
  181. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
  182. package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
  183. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
  184. package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
  185. package/components/chip/chip.js +3 -4
  186. package/components/chip/chip.js.map +1 -1
  187. package/components/chip/themes/shared/chip.indigo.css.js +1 -1
  188. package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
  189. package/components/combo/combo-header.js +3 -4
  190. package/components/combo/combo-header.js.map +1 -1
  191. package/components/combo/combo-item.js +3 -4
  192. package/components/combo/combo-item.js.map +1 -1
  193. package/components/combo/combo-list.js +2 -3
  194. package/components/combo/combo-list.js.map +1 -1
  195. package/components/combo/combo.js +4 -3
  196. package/components/combo/combo.js.map +1 -1
  197. package/components/combo/themes/combo-item.base.css.js +1 -1
  198. package/components/combo/themes/combo-item.base.css.js.map +1 -1
  199. package/components/combo/themes/combo.base.css.js +1 -1
  200. package/components/combo/themes/combo.base.css.js.map +1 -1
  201. package/components/combo/themes/shared/combo.bootstrap.css.js +1 -1
  202. package/components/combo/themes/shared/combo.bootstrap.css.js.map +1 -1
  203. package/components/combo/themes/shared/combo.fluent.css.js +1 -1
  204. package/components/combo/themes/shared/combo.fluent.css.js.map +1 -1
  205. package/components/combo/themes/shared/combo.indigo.css.js +1 -1
  206. package/components/combo/themes/shared/combo.indigo.css.js.map +1 -1
  207. package/components/combo/themes/shared/combo.material.css.js +1 -1
  208. package/components/combo/themes/shared/combo.material.css.js.map +1 -1
  209. package/components/common/context.d.ts +4 -1
  210. package/components/common/context.js +2 -1
  211. package/components/common/context.js.map +1 -1
  212. package/components/common/controllers/focus-ring.js +5 -5
  213. package/components/common/controllers/focus-ring.js.map +1 -1
  214. package/components/common/controllers/key-bindings.js +4 -4
  215. package/components/common/controllers/key-bindings.js.map +1 -1
  216. package/components/common/i18n/chat.resources.d.ts +4 -4
  217. package/components/common/i18n/chat.resources.js +4 -4
  218. package/components/common/i18n/chat.resources.js.map +1 -1
  219. package/components/common/mixins/forms/associated.js +1 -1
  220. package/components/common/mixins/forms/associated.js.map +1 -1
  221. package/components/common/mixins/forms/form-value.js +1 -1
  222. package/components/common/mixins/forms/form-value.js.map +1 -1
  223. package/components/common/part-map.d.ts +1 -1
  224. package/components/common/util.d.ts +8 -0
  225. package/components/common/util.js +33 -1
  226. package/components/common/util.js.map +1 -1
  227. package/components/date-picker/date-picker.js +5 -4
  228. package/components/date-picker/date-picker.js.map +1 -1
  229. package/components/date-picker/themes/date-picker.base.css.js +1 -1
  230. package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
  231. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +1 -1
  232. package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -1
  233. package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
  234. package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
  235. package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
  236. package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
  237. package/components/date-picker/themes/shared/date-picker.indigo.css.js +1 -1
  238. package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -1
  239. package/components/date-range-picker/date-range-picker.base.css.js +1 -1
  240. package/components/date-range-picker/date-range-picker.base.css.js.map +1 -1
  241. package/components/date-range-picker/date-range-picker.d.ts +1 -1
  242. package/components/date-range-picker/date-range-picker.js +5 -4
  243. package/components/date-range-picker/date-range-picker.js.map +1 -1
  244. package/components/date-range-picker/predefined-ranges-area.base.css.js +1 -1
  245. package/components/date-range-picker/predefined-ranges-area.base.css.js.map +1 -1
  246. package/components/date-range-picker/predefined-ranges-area.js +3 -4
  247. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  248. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js +1 -1
  249. package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js.map +1 -1
  250. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js +1 -1
  251. package/components/date-range-picker/themes/shared/date-range-picker.common.css.js.map +1 -1
  252. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js +1 -1
  253. package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js.map +1 -1
  254. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js +1 -1
  255. package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js.map +1 -1
  256. package/components/date-time-input/date-time-input.js +2 -3
  257. package/components/date-time-input/date-time-input.js.map +1 -1
  258. package/components/date-time-input/date-util.js +11 -11
  259. package/components/date-time-input/date-util.js.map +1 -1
  260. package/components/dialog/dialog.js +3 -4
  261. package/components/dialog/dialog.js.map +1 -1
  262. package/components/dialog/themes/dialog.base.css.js +1 -1
  263. package/components/dialog/themes/dialog.base.css.js.map +1 -1
  264. package/components/dialog/themes/shared/dialog.bootstrap.css.js +1 -1
  265. package/components/dialog/themes/shared/dialog.bootstrap.css.js.map +1 -1
  266. package/components/dialog/themes/shared/dialog.common.css.js +1 -1
  267. package/components/dialog/themes/shared/dialog.common.css.js.map +1 -1
  268. package/components/dialog/themes/shared/dialog.fluent.css.js +1 -1
  269. package/components/dialog/themes/shared/dialog.fluent.css.js.map +1 -1
  270. package/components/dialog/themes/shared/dialog.indigo.css.js +1 -1
  271. package/components/dialog/themes/shared/dialog.indigo.css.js.map +1 -1
  272. package/components/divider/divider.js +3 -4
  273. package/components/divider/divider.js.map +1 -1
  274. package/components/dropdown/dropdown-group.js +3 -4
  275. package/components/dropdown/dropdown-group.js.map +1 -1
  276. package/components/dropdown/dropdown-header.js +3 -4
  277. package/components/dropdown/dropdown-header.js.map +1 -1
  278. package/components/dropdown/dropdown-item.js +3 -4
  279. package/components/dropdown/dropdown-item.js.map +1 -1
  280. package/components/dropdown/dropdown.js +4 -3
  281. package/components/dropdown/dropdown.js.map +1 -1
  282. package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
  283. package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
  284. package/components/dropdown/themes/shared/dropdown.indigo.css.js +1 -1
  285. package/components/dropdown/themes/shared/dropdown.indigo.css.js.map +1 -1
  286. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
  287. package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
  288. package/components/expansion-panel/expansion-panel.js +3 -4
  289. package/components/expansion-panel/expansion-panel.js.map +1 -1
  290. package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
  291. package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
  292. package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js +1 -1
  293. package/components/expansion-panel/themes/shared/expansion-panel.indigo.css.js.map +1 -1
  294. package/components/file-input/file-input.d.ts +0 -4
  295. package/components/file-input/file-input.js +15 -19
  296. package/components/file-input/file-input.js.map +1 -1
  297. package/components/file-input/themes/shared/file-input.material.css.js +1 -1
  298. package/components/file-input/themes/shared/file-input.material.css.js.map +1 -1
  299. package/components/focus-trap/focus-trap.js +7 -8
  300. package/components/focus-trap/focus-trap.js.map +1 -1
  301. package/components/icon/icon-references.js +208 -0
  302. package/components/icon/icon-references.js.map +1 -1
  303. package/components/icon/icon-state.broadcast.js +1 -1
  304. package/components/icon/icon-state.broadcast.js.map +1 -1
  305. package/components/icon/icon.js +3 -4
  306. package/components/icon/icon.js.map +1 -1
  307. package/components/icon/internal-icons-lib.js +105 -0
  308. package/components/icon/internal-icons-lib.js.map +1 -1
  309. package/components/input/input-base.js +4 -3
  310. package/components/input/input-base.js.map +1 -1
  311. package/components/input/input.d.ts +0 -4
  312. package/components/input/input.js +11 -14
  313. package/components/input/input.js.map +1 -1
  314. package/components/input/themes/shared/input.common.css.js +1 -1
  315. package/components/input/themes/shared/input.common.css.js.map +1 -1
  316. package/components/input/themes/shared/input.fluent.css.js +1 -1
  317. package/components/input/themes/shared/input.fluent.css.js.map +1 -1
  318. package/components/input/themes/shared/input.indigo.css.js +1 -1
  319. package/components/input/themes/shared/input.indigo.css.js.map +1 -1
  320. package/components/input/themes/shared/input.material.css.js +1 -1
  321. package/components/input/themes/shared/input.material.css.js.map +1 -1
  322. package/components/list/list-header.js +3 -4
  323. package/components/list/list-header.js.map +1 -1
  324. package/components/list/list-item.js +3 -4
  325. package/components/list/list-item.js.map +1 -1
  326. package/components/list/list.js +3 -4
  327. package/components/list/list.js.map +1 -1
  328. package/components/list/themes/dark/container/list.indigo.css.js +1 -1
  329. package/components/list/themes/dark/container/list.indigo.css.js.map +1 -1
  330. package/components/list/themes/dark/header/list-header.indigo.css.js +1 -1
  331. package/components/list/themes/dark/header/list-header.indigo.css.js.map +1 -1
  332. package/components/list/themes/dark/item/list-item.indigo.css.js +1 -1
  333. package/components/list/themes/dark/item/list-item.indigo.css.js.map +1 -1
  334. package/components/list/themes/light/container/list.indigo.css.js +1 -1
  335. package/components/list/themes/light/container/list.indigo.css.js.map +1 -1
  336. package/components/list/themes/light/header/list-header.indigo.css.js +1 -1
  337. package/components/list/themes/light/header/list-header.indigo.css.js.map +1 -1
  338. package/components/list/themes/light/item/list-item.indigo.css.js +1 -1
  339. package/components/list/themes/light/item/list-item.indigo.css.js.map +1 -1
  340. package/components/mask-input/mask-input.js +2 -3
  341. package/components/mask-input/mask-input.js.map +1 -1
  342. package/components/nav-drawer/nav-drawer-header-item.js +3 -4
  343. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  344. package/components/nav-drawer/nav-drawer-item.js +3 -4
  345. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  346. package/components/nav-drawer/nav-drawer.js +3 -4
  347. package/components/nav-drawer/nav-drawer.js.map +1 -1
  348. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
  349. package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
  350. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
  351. package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
  352. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
  353. package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
  354. package/components/nav-drawer/themes/shared/header-item/header-item.bootstrap.css.js +1 -1
  355. package/components/nav-drawer/themes/shared/header-item/header-item.bootstrap.css.js.map +1 -1
  356. package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.js +1 -1
  357. package/components/nav-drawer/themes/shared/header-item/header-item.fluent.css.js.map +1 -1
  358. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js +1 -1
  359. package/components/nav-drawer/themes/shared/header-item/header-item.indigo.css.js.map +1 -1
  360. package/components/nav-drawer/themes/shared/header-item/header-item.material.css.js +1 -1
  361. package/components/nav-drawer/themes/shared/header-item/header-item.material.css.js.map +1 -1
  362. package/components/nav-drawer/themes/shared/item/item.bootstrap.css.js +1 -1
  363. package/components/nav-drawer/themes/shared/item/item.bootstrap.css.js.map +1 -1
  364. package/components/nav-drawer/themes/shared/item/item.fluent.css.js +1 -1
  365. package/components/nav-drawer/themes/shared/item/item.fluent.css.js.map +1 -1
  366. package/components/nav-drawer/themes/shared/item/item.indigo.css.js +1 -1
  367. package/components/nav-drawer/themes/shared/item/item.indigo.css.js.map +1 -1
  368. package/components/nav-drawer/themes/shared/item/item.material.css.js +1 -1
  369. package/components/nav-drawer/themes/shared/item/item.material.css.js.map +1 -1
  370. package/components/navbar/navbar.js +3 -4
  371. package/components/navbar/navbar.js.map +1 -1
  372. package/components/navbar/themes/navbar.base.css.js +1 -1
  373. package/components/navbar/themes/navbar.base.css.js.map +1 -1
  374. package/components/navbar/themes/shared/navbar.bootstrap.css.js +1 -1
  375. package/components/navbar/themes/shared/navbar.bootstrap.css.js.map +1 -1
  376. package/components/navbar/themes/shared/navbar.indigo.css.js +1 -1
  377. package/components/navbar/themes/shared/navbar.indigo.css.js.map +1 -1
  378. package/components/popover/popover.js +9 -10
  379. package/components/popover/popover.js.map +1 -1
  380. package/components/progress/circular-gradient.js +2 -3
  381. package/components/progress/circular-gradient.js.map +1 -1
  382. package/components/progress/circular-progress.js +3 -4
  383. package/components/progress/circular-progress.js.map +1 -1
  384. package/components/progress/linear-progress.js +3 -4
  385. package/components/progress/linear-progress.js.map +1 -1
  386. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js +1 -1
  387. package/components/progress/themes/linear/shared/linear.progress.fluent.css.js.map +1 -1
  388. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js +1 -1
  389. package/components/progress/themes/linear/shared/linear.progress.indigo.css.js.map +1 -1
  390. package/components/radio/radio.js +3 -4
  391. package/components/radio/radio.js.map +1 -1
  392. package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
  393. package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
  394. package/components/radio/themes/shared/radio.fluent.css.js +1 -1
  395. package/components/radio/themes/shared/radio.fluent.css.js.map +1 -1
  396. package/components/radio/themes/shared/radio.indigo.css.js +1 -1
  397. package/components/radio/themes/shared/radio.indigo.css.js.map +1 -1
  398. package/components/radio/themes/shared/radio.material.css.js +1 -1
  399. package/components/radio/themes/shared/radio.material.css.js.map +1 -1
  400. package/components/radio-group/radio-group.js +3 -4
  401. package/components/radio-group/radio-group.js.map +1 -1
  402. package/components/radio-group/themes/radio-group.base.css.js +1 -1
  403. package/components/radio-group/themes/radio-group.base.css.js.map +1 -1
  404. package/components/radio-group/themes/shared/radio-group.bootstrap.css.js +1 -1
  405. package/components/radio-group/themes/shared/radio-group.bootstrap.css.js.map +1 -1
  406. package/components/radio-group/themes/shared/radio-group.fluent.css.js +1 -1
  407. package/components/radio-group/themes/shared/radio-group.fluent.css.js.map +1 -1
  408. package/components/radio-group/themes/shared/radio-group.indigo.css.js +1 -1
  409. package/components/radio-group/themes/shared/radio-group.indigo.css.js.map +1 -1
  410. package/components/radio-group/themes/shared/radio-group.material.css.js +1 -1
  411. package/components/radio-group/themes/shared/radio-group.material.css.js.map +1 -1
  412. package/components/rating/rating-symbol.js +3 -4
  413. package/components/rating/rating-symbol.js.map +1 -1
  414. package/components/rating/rating.js +3 -4
  415. package/components/rating/rating.js.map +1 -1
  416. package/components/rating/themes/rating.base.css.js +1 -1
  417. package/components/rating/themes/rating.base.css.js.map +1 -1
  418. package/components/rating/themes/shared/rating.indigo.css.js +1 -1
  419. package/components/rating/themes/shared/rating.indigo.css.js.map +1 -1
  420. package/components/resize-container/resize-container.d.ts +1 -1
  421. package/components/resize-container/resize-container.js +3 -4
  422. package/components/resize-container/resize-container.js.map +1 -1
  423. package/components/ripple/ripple.js +3 -4
  424. package/components/ripple/ripple.js.map +1 -1
  425. package/components/select/select-group.js +3 -4
  426. package/components/select/select-group.js.map +1 -1
  427. package/components/select/select-header.js +3 -4
  428. package/components/select/select-header.js.map +1 -1
  429. package/components/select/select-item.js +3 -4
  430. package/components/select/select-item.js.map +1 -1
  431. package/components/select/select.js +4 -4
  432. package/components/select/select.js.map +1 -1
  433. package/components/select/themes/shared/select.bootstrap.css.js +1 -1
  434. package/components/select/themes/shared/select.bootstrap.css.js.map +1 -1
  435. package/components/select/themes/shared/select.fluent.css.js +1 -1
  436. package/components/select/themes/shared/select.fluent.css.js.map +1 -1
  437. package/components/select/themes/shared/select.indigo.css.js +1 -1
  438. package/components/select/themes/shared/select.indigo.css.js.map +1 -1
  439. package/components/select/themes/shared/select.material.css.js +1 -1
  440. package/components/select/themes/shared/select.material.css.js.map +1 -1
  441. package/components/slider/range-slider.js +2 -3
  442. package/components/slider/range-slider.js.map +1 -1
  443. package/components/slider/slider-base.js +1 -1
  444. package/components/slider/slider-base.js.map +1 -1
  445. package/components/slider/slider-label.js +7 -8
  446. package/components/slider/slider-label.js.map +1 -1
  447. package/components/slider/slider.js +2 -3
  448. package/components/slider/slider.js.map +1 -1
  449. package/components/slider/themes/shared/slider.common.css.js +1 -1
  450. package/components/slider/themes/shared/slider.common.css.js.map +1 -1
  451. package/components/slider/themes/slider.base.css.js +1 -1
  452. package/components/slider/themes/slider.base.css.js.map +1 -1
  453. package/components/snackbar/snackbar.js +3 -4
  454. package/components/snackbar/snackbar.js.map +1 -1
  455. package/components/snackbar/themes/shared/snackbar.indigo.css.js +1 -1
  456. package/components/snackbar/themes/shared/snackbar.indigo.css.js.map +1 -1
  457. package/components/snackbar/themes/snackbar.base.css.js +1 -1
  458. package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
  459. package/components/stepper/step.d.ts +1 -1
  460. package/components/stepper/step.js +3 -4
  461. package/components/stepper/step.js.map +1 -1
  462. package/components/stepper/stepper.js +3 -4
  463. package/components/stepper/stepper.js.map +1 -1
  464. package/components/tabs/tab-dom.js +1 -1
  465. package/components/tabs/tab-dom.js.map +1 -1
  466. package/components/tabs/tab.js +4 -5
  467. package/components/tabs/tab.js.map +1 -1
  468. package/components/tabs/tabs.js +3 -4
  469. package/components/tabs/tabs.js.map +1 -1
  470. package/components/tabs/themes/shared/tab/tab.bootstrap.css.js +1 -1
  471. package/components/tabs/themes/shared/tab/tab.bootstrap.css.js.map +1 -1
  472. package/components/tabs/themes/shared/tab/tab.fluent.css.js +1 -1
  473. package/components/tabs/themes/shared/tab/tab.fluent.css.js.map +1 -1
  474. package/components/tabs/themes/shared/tab/tab.indigo.css.js +1 -1
  475. package/components/tabs/themes/shared/tab/tab.indigo.css.js.map +1 -1
  476. package/components/tabs/themes/shared/tab/tab.material.css.js +1 -1
  477. package/components/tabs/themes/shared/tab/tab.material.css.js.map +1 -1
  478. package/components/textarea/textarea.d.ts +1 -1
  479. package/components/textarea/textarea.js +4 -3
  480. package/components/textarea/textarea.js.map +1 -1
  481. package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
  482. package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
  483. package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
  484. package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
  485. package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
  486. package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
  487. package/components/textarea/themes/shared/textarea.material.css.js +1 -1
  488. package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
  489. package/components/textarea/themes/textarea.base.css.js +1 -1
  490. package/components/textarea/themes/textarea.base.css.js.map +1 -1
  491. package/components/tile-manager/resize-state.js +1 -1
  492. package/components/tile-manager/resize-state.js.map +1 -1
  493. package/components/tile-manager/tile-manager.js +4 -3
  494. package/components/tile-manager/tile-manager.js.map +1 -1
  495. package/components/tile-manager/tile.js +3 -4
  496. package/components/tile-manager/tile.js.map +1 -1
  497. package/components/toast/themes/shared/toast.bootstrap.css.js +1 -1
  498. package/components/toast/themes/shared/toast.bootstrap.css.js.map +1 -1
  499. package/components/toast/themes/shared/toast.common.css.js +1 -1
  500. package/components/toast/themes/shared/toast.common.css.js.map +1 -1
  501. package/components/toast/themes/shared/toast.fluent.css.js +1 -1
  502. package/components/toast/themes/shared/toast.fluent.css.js.map +1 -1
  503. package/components/toast/themes/toast.base.css.js +1 -1
  504. package/components/toast/themes/toast.base.css.js.map +1 -1
  505. package/components/toast/toast.js +3 -4
  506. package/components/toast/toast.js.map +1 -1
  507. package/components/tooltip/controller.js +4 -4
  508. package/components/tooltip/controller.js.map +1 -1
  509. package/components/tooltip/themes/tooltip.base.css.js +1 -1
  510. package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
  511. package/components/tooltip/tooltip.js +3 -4
  512. package/components/tooltip/tooltip.js.map +1 -1
  513. package/components/tree/themes/item.base.css.js +1 -1
  514. package/components/tree/themes/item.base.css.js.map +1 -1
  515. package/components/tree/themes/shared/item.common.css.js +1 -1
  516. package/components/tree/themes/shared/item.common.css.js.map +1 -1
  517. package/components/tree/themes/shared/item.indigo.css.js +1 -1
  518. package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
  519. package/components/tree/themes/shared/item.material.css.js +1 -1
  520. package/components/tree/themes/shared/item.material.css.js.map +1 -1
  521. package/components/tree/tree-item.js +3 -4
  522. package/components/tree/tree-item.js.map +1 -1
  523. package/components/tree/tree.js +4 -3
  524. package/components/tree/tree.js.map +1 -1
  525. package/components/validation-container/validation-container.js +3 -4
  526. package/components/validation-container/validation-container.js.map +1 -1
  527. package/custom-elements.json +24973 -25167
  528. package/extras/index.d.ts +1 -0
  529. package/extras/index.js +2 -0
  530. package/extras/index.js.map +1 -0
  531. package/igniteui-webcomponents.css-data.json +1 -1
  532. package/igniteui-webcomponents.html-data.json +1 -1
  533. package/index.d.ts +1 -3
  534. package/index.js +0 -2
  535. package/index.js.map +1 -1
  536. package/package.json +6 -2
  537. package/web-types.json +2 -2
  538. package/components/chat/assets/file.png +0 -0
  539. package/components/chat/assets/json.png +0 -0
  540. package/components/chat/assets/link.png +0 -0
  541. package/components/chat/chat-message-list.d.ts +0 -70
  542. package/components/chat/chat-message-list.js +0 -89
  543. package/components/chat/chat-message-list.js.map +0 -1
  544. package/components/chat/chat-renderer.d.ts +0 -14
  545. package/components/chat/chat-renderer.js +0 -39
  546. package/components/chat/chat-renderer.js.map +0 -1
  547. package/components/chat/markdown-renderer.d.ts +0 -72
  548. package/components/chat/markdown-renderer.js +0 -71
  549. package/components/chat/markdown-renderer.js.map +0 -1
  550. package/components/chat/plain-text-renderer.d.ts +0 -15
  551. package/components/chat/plain-text-renderer.js +0 -7
  552. package/components/chat/plain-text-renderer.js.map +0 -1
  553. package/components/chat/themes/message-list.base.css.js +0 -3
  554. package/components/chat/themes/message-list.base.css.js.map +0 -1
  555. package/components/chat/themes/shared/message-attachments.common.css.js +0 -3
  556. package/components/chat/themes/shared/message-attachments.common.css.js.map +0 -1
  557. package/components/chat/themes/shared/message-list.common.css.js +0 -3
  558. package/components/chat/themes/shared/message-list.common.css.js.map +0 -1
  559. /package/components/chat/themes/{message-list.base.css.d.ts → shared/chat.fluent.css.d.ts} +0 -0
  560. /package/components/chat/themes/shared/{message-attachments.common.css.d.ts → message-attachments/message-attachments.common.css.d.ts} +0 -0
  561. /package/components/chat/themes/shared/{message-list.common.css.d.ts → message-attachments/message-attachments.indigo.css.d.ts} +0 -0
@@ -1,3 +1,4 @@
1
+ import type IgcChatComponent from './chat.js';
1
2
  /**
2
3
  * Represents a single chat message in the conversation.
3
4
  */
@@ -17,12 +18,16 @@ export interface IgcMessage {
17
18
  /**
18
19
  * The timestamp indicating when the message was sent.
19
20
  */
20
- timestamp: Date;
21
+ timestamp?: string;
21
22
  /**
22
23
  * Optional list of attachments associated with the message,
23
24
  * such as images, files, or links.
24
25
  */
25
26
  attachments?: IgcMessageAttachment[];
27
+ /**
28
+ * Optional list of reactions associated with the message.
29
+ */
30
+ reactions?: string[];
26
31
  }
27
32
  /**
28
33
  * Represents an attachment associated with a chat message.
@@ -54,29 +59,6 @@ export interface IgcMessageAttachment {
54
59
  */
55
60
  thumbnail?: string;
56
61
  }
57
- /**
58
- * A function type used to render a group of attachments in a chat message.
59
- *
60
- * This allows consumers to customize how message attachments are displayed
61
- * (e.g. rendering thumbnails, file icons, or download links).
62
- *
63
- * @param {IgcMessageAttachment[]} attachments - The list of attachments to render.
64
- * @returns {unknown} A custom rendered representation of the attachments.
65
- */
66
- export type AttachmentTemplate = (attachments: IgcMessageAttachment[]) => unknown;
67
- /**
68
- * A function type used to render a single chat message.
69
- *
70
- * This allows consumers to fully customize the display of a message,
71
- * including its text, sender info, timestamp, and any attachments.
72
- *
73
- * @param {IgcMessage} message - The chat message to render.
74
- * @returns {unknown} A custom rendered representation of the message.
75
- */
76
- export type MessageTemplate = (message: IgcMessage, ctx: {
77
- textContent: unknown;
78
- templates: Partial<IgcChatTemplates>;
79
- }) => unknown;
80
62
  /**
81
63
  * Configuration options for customizing the behavior and appearance of the chat component.
82
64
  */
@@ -130,115 +112,37 @@ export type IgcChatOptions = {
130
112
  * Default is `3000`.
131
113
  */
132
114
  stopTypingDelay?: number;
133
- /**
134
- * A set of template override functions used to customize rendering of messages, attachments, etc.
135
- */
136
- templates?: Partial<IgcChatTemplates>;
137
- messageRenderer?: ChatMessageRenderer;
115
+ renderers?: Partial<ChatRenderers>;
138
116
  };
139
- /**
140
- * A collection of template functions used to customize different parts of the chat component.
141
- * Each template allows you to override the rendering of a specific part of the component.
142
- */
143
- export type IgcChatTemplates = {
144
- /**
145
- * Template for rendering the attachments of a message.
146
- */
147
- attachmentsTemplate?: (message: IgcMessage, ctx: {
148
- templates: Partial<IgcChatTemplates>;
149
- }) => unknown;
150
- /**
151
- * Template for rendering an attachment in a message.
152
- * This allows customization of how each attachment is displayed.
153
- */
154
- attachmentTemplate?: (attachment: IgcMessageAttachment, message: IgcMessage) => unknown;
155
- /**
156
- * Template for rendering a custom header above the attachment in a message.
157
- */
158
- attachmentHeaderTemplate?: (attachment: IgcMessageAttachment, message: IgcMessage) => unknown;
159
- /**
160
- * Template for rendering the main content of an attachment, such as a thumbnail or file preview.
161
- */
162
- attachmentContentTemplate?: (attachment: IgcMessageAttachment) => unknown;
163
- /**
164
- * Template for rendering an information about the author of a single chat message.
165
- * Use this to customize message layout, formatting, or metadata.
166
- */
167
- messageAuthorTemplate?: (message: IgcMessage) => unknown;
168
- /**
169
- * Template for rendering a single chat message.
170
- * Use this to customize message layout, formatting, or metadata.
171
- */
172
- messageTemplate?: MessageTemplate;
173
- /**
174
- * Template for rendering the actions available for a message (e.g. copy, like, dislike, regenerate).
175
- * This allows customization of the buttons or controls shown for each message.
176
- */
177
- messageActionsTemplate?: (message: IgcMessage) => unknown;
178
- /**
179
- * Template used to show an indicator when the other user is typing (e.g. “User is typing...”).
180
- */
181
- typingIndicatorTemplate?: unknown;
182
- /**
183
- * Template for customizing the text input element (usually a `<textarea>` or `<input>`).
184
- *
185
- * @param text - The current value of the text input.
186
- * @returns {unknown} A custom rendered representation of the text input.
187
- */
188
- textInputTemplate?: (text: string) => unknown;
189
- /**
190
- * Template for rendering additional controls in the message input area,
191
- * such as send buttons, emoji pickers, or voice recorders.
192
- */
193
- textAreaActionsTemplate?: () => unknown;
194
- /**
195
- * Template for rendering attachments that are currently queued for sending (in the input area).
196
- */
197
- textAreaAttachmentsTemplate?: AttachmentTemplate;
198
- /**
199
- * Template for rendering the suggestion prefix.
200
- */
201
- suggestionPrefixTemplate?: unknown;
117
+ export type ChatRenderers = {
118
+ attachment?: ChatTemplateRenderer<AttachmentRendererContext>;
119
+ attachmentContent?: ChatTemplateRenderer<AttachmentRendererContext>;
120
+ attachmentHeader?: ChatTemplateRenderer<AttachmentRendererContext>;
121
+ fileUploadButton?: ChatTemplateRenderer<ChatRendererContext>;
122
+ input?: ChatTemplateRenderer<InputRendererContext>;
123
+ inputActions?: ChatTemplateRenderer<ChatRendererContext>;
124
+ inputAttachments?: ChatTemplateRenderer<InputRendererContext>;
125
+ message?: ChatTemplateRenderer<MessageRendererContext>;
126
+ messageActions?: ChatTemplateRenderer<MessageRendererContext>;
127
+ messageAttachments?: ChatTemplateRenderer<MessageRendererContext>;
128
+ messageContent?: ChatTemplateRenderer<MessageRendererContext>;
129
+ messageHeader?: ChatTemplateRenderer<MessageRendererContext>;
130
+ typingIndicator?: ChatTemplateRenderer<ChatRendererContext>;
131
+ sendButton?: ChatTemplateRenderer<ChatRendererContext>;
132
+ suggestionPrefix?: ChatTemplateRenderer<ChatRendererContext>;
202
133
  };
203
- /**
204
- * @interface
205
- * Interface for rendering chat messages within a component, such as in a Lit-based chat UI.
206
- *
207
- * Defines how a given {@link IgcMessage} should be rendered.
208
- *
209
- * @export
210
- */
211
- export interface ChatMessageRenderer {
212
- /**
213
- * Renders a given message.
214
- * @param {IgcMessage} message The message to render.
215
- * @returns {unknown} The rendered output, typically an HTMLElement, DocumentFragment, or a lit-html TemplateResult,
216
- * depending on the renderer implementation.
217
- */
218
- render(message: IgcMessage, ctx?: {
219
- renderText: (message: IgcMessage) => unknown;
220
- templates: Partial<IgcChatTemplates>;
221
- }): unknown;
222
- /**
223
- * Performs optional asynchronous initialization.
224
- * This method is called before any rendering occurs and can be used to load resources
225
- * like syntax highlighters or fonts.
226
- * @async
227
- * @returns {Promise<void>} A promise that resolves when initialization is complete.
228
- */
229
- init?(): Promise<void>;
134
+ export type ChatTemplateRenderer<T> = (ctx: T) => unknown;
135
+ export interface ChatRendererContext {
136
+ defaults: ChatRenderers;
137
+ instance: IgcChatComponent;
138
+ }
139
+ export interface InputRendererContext extends ChatRendererContext {
140
+ attachments: IgcMessageAttachment[];
141
+ value: string;
142
+ }
143
+ export interface MessageRendererContext extends ChatRendererContext {
144
+ message: IgcMessage;
145
+ }
146
+ export interface AttachmentRendererContext extends MessageRendererContext {
147
+ attachment: IgcMessageAttachment;
230
148
  }
231
- export declare const attachmentIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M720-330q0 104-73 177T470-80q-104 0-177-73t-73-177v-370q0-75 52.5-127.5T400-880q75 0 127.5 52.5T580-700v350q0 46-32 78t-78 32q-46 0-78-32t-32-78v-370h80v370q0 13 8.5 21.5T470-320q13 0 21.5-8.5T500-350v-350q-1-42-29.5-71T400-800q-42 0-71 29t-29 71v370q-1 71 49 120.5T470-160q70 0 119-49.5T640-330v-390h80v390Z\"/></svg>";
232
- export declare const sendButtonIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M120-160v-640l760 320-760 320Zm80-120 474-200-474-200v140l240 60-240 60v140Zm0 0v-400 400Z\"/></svg>";
233
- export declare const closeIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z\"/></svg>";
234
- export declare const fileIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z\"/></svg>";
235
- export declare const imageIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z\"/></svg>";
236
- export declare const moreIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z\"/></svg>";
237
- export declare const previewIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h280v80H200v560h560v-280h80v280q0 33-23.5 56.5T760-120H200Zm188-212-56-56 372-372H560v-80h280v280h-80v-144L388-332Z\"/></svg>";
238
- export declare const fileImageIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\"><path d=\"M6.75 1.5L5.3775 3H3C2.175 3 1.5 3.675 1.5 4.5V13.5C1.5 14.325 2.175 15 3 15H15C15.825 15 16.5 14.325 16.5 13.5V4.5C16.5 3.675 15.825 3 15 3H12.6225L11.25 1.5H6.75ZM9 12.75C6.93 12.75 5.25 11.07 5.25 9C5.25 6.93 6.93 5.25 9 5.25C11.07 5.25 12.75 6.93 12.75 9C12.75 11.07 11.07 12.75 9 12.75Z\"/></svg>";
239
- export declare const fileDocumentIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\"><path d=\"M4.5 1.5C3.675 1.5 3.0075 2.175 3.0075 3L3 15C3 15.825 3.6675 16.5 4.4925 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5H4.5ZM9.75 6.75V2.625L13.875 6.75H9.75Z\"/></svg>";
240
- export declare const copyIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z\"/></svg>";
241
- export declare const thumbUpIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M720-120H280v-520l280-280 50 50q7 7 11.5 19t4.5 23v14l-44 174h258q32 0 56 24t24 56v80q0 7-2 15t-4 15L794-168q-9 20-30 34t-44 14Zm-360-80h360l120-280v-80H480l54-220-174 174v406Zm0-406v406-406Zm-80-34v80H160v360h120v80H80v-520h200Z\"/></svg>";
242
- export declare const thumbDownIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M240-840h440v520L400-40l-50-50q-7-7-11.5-19t-4.5-23v-14l44-174H120q-32 0-56-24t-24-56v-80q0-7 2-15t4-15l120-282q9-20 30-34t44-14Zm360 80H240L120-480v80h360l-54 220 174-174v-406Zm0 406v-406 406Zm80 34v-80h120v-360H680v-80h200v520H680Z\"/></svg>";
243
- export declare const regenerateIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z\"/></svg>";
244
- export declare const starIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"25\" viewBox=\"0 0 24 25\"><path d=\"M6.58624 4.76825C6.72103 4.41058 7.23629 4.41058 7.37112 4.76825L7.92907 6.24921C7.94973 6.30414 7.98177 6.35321 8.02248 6.39423C8.06524 6.43719 8.11758 6.47089 8.17626 6.49213L9.6841 7.04022C10.0484 7.17255 10.0484 7.67865 9.6841 7.81097L8.17626 8.35907C8.10738 8.38422 8.04729 8.42621 8.00109 8.48016C7.97045 8.51605 7.94595 8.55707 7.92907 8.60199L7.37112 10.0829C7.23629 10.4409 6.72103 10.4409 6.58624 10.0829L6.02828 8.60199C5.98589 8.48944 5.89559 8.40082 5.78106 8.35907L4.27322 7.81097C3.90893 7.67865 3.90893 7.17255 4.27322 7.04022L5.78106 6.49213C5.89559 6.45062 5.98589 6.36176 6.02828 6.24921L6.58624 4.76825Z\" /><path d=\"M12.2095 8.05023C12.481 7.31659 13.519 7.31659 13.7905 8.05023L14.9144 11.0876C14.9997 11.3183 15.1816 11.5002 15.4123 11.5856L18.4496 12.7094C19.1835 12.9809 19.1835 14.019 18.4496 14.2905L15.4123 15.4142C15.1816 15.4997 14.9997 15.6816 14.9144 15.9123L13.7905 18.9496C13.519 19.6833 12.481 19.6833 12.2095 18.9496L11.0856 15.9123C11.0002 15.6816 10.8183 15.4997 10.5876 15.4142L7.55038 14.2905C6.81652 14.019 6.81652 12.9809 7.55038 12.7094L10.5876 11.5856C10.8183 11.5002 11.0002 11.3183 11.0856 11.0876L12.2095 8.05023Z\" /><path d=\"M6.63354 16.7551C6.75942 16.415 7.24056 16.415 7.36645 16.7551L7.67638 17.5927C7.71597 17.6996 7.80029 17.7839 7.90725 17.8234L8.74487 18.1335C9.08504 18.2595 9.08504 18.7404 8.74487 18.8664L7.90725 19.1765C7.85857 19.1945 7.8146 19.2216 7.7774 19.256C7.73281 19.2973 7.69796 19.3488 7.67638 19.4072L7.36645 20.2448C7.24056 20.5849 6.75942 20.5849 6.63354 20.2448L6.3236 19.4072C6.3055 19.3583 6.27807 19.3141 6.2434 19.2768C6.2022 19.2326 6.15081 19.1979 6.09274 19.1765L5.25512 18.8664C4.91494 18.7404 4.91494 18.2595 5.25512 18.1335L6.09274 17.8234C6.1997 17.7839 6.28402 17.6996 6.3236 17.5927L6.63354 16.7551Z\" /><path d=\"M18.3664 5.75507C18.2406 5.41498 17.7594 5.41498 17.6335 5.75507L17.3236 6.59271C17.284 6.69965 17.1997 6.78387 17.0928 6.82343L16.2551 7.13348C15.915 7.25946 15.915 7.74042 16.2551 7.86639L17.0928 8.17645C17.1997 8.216 17.284 8.30023 17.3236 8.40717L17.6335 9.24481C17.7594 9.5849 18.2406 9.5849 18.3664 9.24481L18.6764 8.40717C18.716 8.30023 18.8003 8.216 18.9072 8.17645L19.7449 7.86639C20.085 7.74042 20.085 7.25946 19.7449 7.13348L18.9072 6.82343C18.8003 6.78387 18.716 6.69965 18.6764 6.59271L18.3664 5.75507Z\" /></svg>";
@@ -1,15 +1,2 @@
1
- export const attachmentIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M720-330q0 104-73 177T470-80q-104 0-177-73t-73-177v-370q0-75 52.5-127.5T400-880q75 0 127.5 52.5T580-700v350q0 46-32 78t-78 32q-46 0-78-32t-32-78v-370h80v370q0 13 8.5 21.5T470-320q13 0 21.5-8.5T500-350v-350q-1-42-29.5-71T400-800q-42 0-71 29t-29 71v370q-1 71 49 120.5T470-160q70 0 119-49.5T640-330v-390h80v390Z"/></svg>';
2
- export const sendButtonIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M120-160v-640l760 320-760 320Zm80-120 474-200-474-200v140l240 60-240 60v140Zm0 0v-400 400Z"/></svg>';
3
- export const closeIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg>';
4
- export const fileIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z"/></svg>';
5
- export const imageIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z"/></svg>';
6
- export const moreIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z"/></svg>';
7
- export const previewIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h280v80H200v560h560v-280h80v280q0 33-23.5 56.5T760-120H200Zm188-212-56-56 372-372H560v-80h280v280h-80v-144L388-332Z"/></svg>';
8
- export const fileImageIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"><path d="M6.75 1.5L5.3775 3H3C2.175 3 1.5 3.675 1.5 4.5V13.5C1.5 14.325 2.175 15 3 15H15C15.825 15 16.5 14.325 16.5 13.5V4.5C16.5 3.675 15.825 3 15 3H12.6225L11.25 1.5H6.75ZM9 12.75C6.93 12.75 5.25 11.07 5.25 9C5.25 6.93 6.93 5.25 9 5.25C11.07 5.25 12.75 6.93 12.75 9C12.75 11.07 11.07 12.75 9 12.75Z"/></svg>';
9
- export const fileDocumentIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"><path d="M4.5 1.5C3.675 1.5 3.0075 2.175 3.0075 3L3 15C3 15.825 3.6675 16.5 4.4925 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5H4.5ZM9.75 6.75V2.625L13.875 6.75H9.75Z"/></svg>';
10
- export const copyIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"/></svg>';
11
- export const thumbUpIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M720-120H280v-520l280-280 50 50q7 7 11.5 19t4.5 23v14l-44 174h258q32 0 56 24t24 56v80q0 7-2 15t-4 15L794-168q-9 20-30 34t-44 14Zm-360-80h360l120-280v-80H480l54-220-174 174v406Zm0-406v406-406Zm-80-34v80H160v360h120v80H80v-520h200Z"/></svg>';
12
- export const thumbDownIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M240-840h440v520L400-40l-50-50q-7-7-11.5-19t-4.5-23v-14l44-174H120q-32 0-56-24t-24-56v-80q0-7 2-15t4-15l120-282q9-20 30-34t44-14Zm360 80H240L120-480v80h360l-54 220 174-174v-406Zm0 406v-406 406Zm80 34v-80h120v-360H680v-80h200v520H680Z"/></svg>';
13
- export const regenerateIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z"/></svg>';
14
- export const starIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="25" viewBox="0 0 24 25"><path d="M6.58624 4.76825C6.72103 4.41058 7.23629 4.41058 7.37112 4.76825L7.92907 6.24921C7.94973 6.30414 7.98177 6.35321 8.02248 6.39423C8.06524 6.43719 8.11758 6.47089 8.17626 6.49213L9.6841 7.04022C10.0484 7.17255 10.0484 7.67865 9.6841 7.81097L8.17626 8.35907C8.10738 8.38422 8.04729 8.42621 8.00109 8.48016C7.97045 8.51605 7.94595 8.55707 7.92907 8.60199L7.37112 10.0829C7.23629 10.4409 6.72103 10.4409 6.58624 10.0829L6.02828 8.60199C5.98589 8.48944 5.89559 8.40082 5.78106 8.35907L4.27322 7.81097C3.90893 7.67865 3.90893 7.17255 4.27322 7.04022L5.78106 6.49213C5.89559 6.45062 5.98589 6.36176 6.02828 6.24921L6.58624 4.76825Z" /><path d="M12.2095 8.05023C12.481 7.31659 13.519 7.31659 13.7905 8.05023L14.9144 11.0876C14.9997 11.3183 15.1816 11.5002 15.4123 11.5856L18.4496 12.7094C19.1835 12.9809 19.1835 14.019 18.4496 14.2905L15.4123 15.4142C15.1816 15.4997 14.9997 15.6816 14.9144 15.9123L13.7905 18.9496C13.519 19.6833 12.481 19.6833 12.2095 18.9496L11.0856 15.9123C11.0002 15.6816 10.8183 15.4997 10.5876 15.4142L7.55038 14.2905C6.81652 14.019 6.81652 12.9809 7.55038 12.7094L10.5876 11.5856C10.8183 11.5002 11.0002 11.3183 11.0856 11.0876L12.2095 8.05023Z" /><path d="M6.63354 16.7551C6.75942 16.415 7.24056 16.415 7.36645 16.7551L7.67638 17.5927C7.71597 17.6996 7.80029 17.7839 7.90725 17.8234L8.74487 18.1335C9.08504 18.2595 9.08504 18.7404 8.74487 18.8664L7.90725 19.1765C7.85857 19.1945 7.8146 19.2216 7.7774 19.256C7.73281 19.2973 7.69796 19.3488 7.67638 19.4072L7.36645 20.2448C7.24056 20.5849 6.75942 20.5849 6.63354 20.2448L6.3236 19.4072C6.3055 19.3583 6.27807 19.3141 6.2434 19.2768C6.2022 19.2326 6.15081 19.1979 6.09274 19.1765L5.25512 18.8664C4.91494 18.7404 4.91494 18.2595 5.25512 18.1335L6.09274 17.8234C6.1997 17.7839 6.28402 17.6996 6.3236 17.5927L6.63354 16.7551Z" /><path d="M18.3664 5.75507C18.2406 5.41498 17.7594 5.41498 17.6335 5.75507L17.3236 6.59271C17.284 6.69965 17.1997 6.78387 17.0928 6.82343L16.2551 7.13348C15.915 7.25946 15.915 7.74042 16.2551 7.86639L17.0928 8.17645C17.1997 8.216 17.284 8.30023 17.3236 8.40717L17.6335 9.24481C17.7594 9.5849 18.2406 9.5849 18.3664 9.24481L18.6764 8.40717C18.716 8.30023 18.8003 8.216 18.9072 8.17645L19.7449 7.86639C20.085 7.74042 20.085 7.25946 19.7449 7.13348L18.9072 6.82343C18.8003 6.78387 18.716 6.69965 18.6764 6.59271L18.3664 5.75507Z" /></svg>';
1
+ export {};
15
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/chat/types.ts"],"names":[],"mappings":"AAgRA,MAAM,CAAC,MAAM,cAAc,GACzB,mbAAmb,CAAC;AACtb,MAAM,CAAC,MAAM,cAAc,GACzB,yNAAyN,CAAC;AAC5N,MAAM,CAAC,MAAM,SAAS,GACpB,gOAAgO,CAAC;AACnO,MAAM,CAAC,MAAM,QAAQ,GACnB,iSAAiS,CAAC;AACpS,MAAM,CAAC,MAAM,SAAS,GACpB,yUAAyU,CAAC;AAC5U,MAAM,CAAC,MAAM,QAAQ,GACnB,6aAA6a,CAAC;AAChb,MAAM,CAAC,MAAM,WAAW,GACtB,8SAA8S,CAAC;AACjT,MAAM,CAAC,MAAM,aAAa,GACxB,0YAA0Y,CAAC;AAC7Y,MAAM,CAAC,MAAM,gBAAgB,GAC3B,wQAAwQ,CAAC;AAC3Q,MAAM,CAAC,MAAM,QAAQ,GACnB,sVAAsV,CAAC;AACzV,MAAM,CAAC,MAAM,WAAW,GACtB,oWAAoW,CAAC;AACvW,MAAM,CAAC,MAAM,aAAa,GACxB,wWAAwW,CAAC;AAC3W,MAAM,CAAC,MAAM,cAAc,GACzB,+UAA+U,CAAC;AAClV,MAAM,CAAC,MAAM,QAAQ,GACnB,k3EAAk3E,CAAC","sourcesContent":["/**\n * Represents a single chat message in the conversation.\n */\nexport interface IgcMessage {\n /**\n * A unique identifier for the message.\n */\n id: string;\n\n /**\n * The textual content of the message.\n */\n text: string;\n\n /**\n * The identifier or name of the sender of the message.\n */\n sender: string;\n\n /**\n * The timestamp indicating when the message was sent.\n */\n timestamp: Date;\n\n /**\n * Optional list of attachments associated with the message,\n * such as images, files, or links.\n */\n attachments?: IgcMessageAttachment[];\n}\n\n/**\n * Represents an attachment associated with a chat message.\n */\nexport interface IgcMessageAttachment {\n /**\n * A unique identifier for the attachment.\n */\n id: string;\n\n /**\n * The display name of the attachment (e.g. file name).\n */\n name: string;\n\n /**\n * The URL from which the attachment can be downloaded or viewed.\n * Typically used for attachments stored on a server or CDN.\n */\n url?: string;\n\n /**\n * The actual File object, if the attachment was provided locally (e.g. via upload).\n */\n file?: File;\n\n /**\n * The MIME type or a custom type identifier for the attachment (e.g. \"image/png\", \"pdf\", \"audio\").\n */\n type?: string;\n\n /**\n * Optional URL to a thumbnail preview of the attachment (e.g. for images or videos).\n */\n thumbnail?: string;\n}\n\n/**\n * A function type used to render a group of attachments in a chat message.\n *\n * This allows consumers to customize how message attachments are displayed\n * (e.g. rendering thumbnails, file icons, or download links).\n *\n * @param {IgcMessageAttachment[]} attachments - The list of attachments to render.\n * @returns {unknown} A custom rendered representation of the attachments.\n */\nexport type AttachmentTemplate = (\n attachments: IgcMessageAttachment[]\n) => unknown;\n\n/**\n * A function type used to render a single chat message.\n *\n * This allows consumers to fully customize the display of a message,\n * including its text, sender info, timestamp, and any attachments.\n *\n * @param {IgcMessage} message - The chat message to render.\n * @returns {unknown} A custom rendered representation of the message.\n */\nexport type MessageTemplate = (\n message: IgcMessage,\n ctx: { textContent: unknown; templates: Partial<IgcChatTemplates> }\n) => unknown;\n\n/**\n * Configuration options for customizing the behavior and appearance of the chat component.\n */\nexport type IgcChatOptions = {\n /**\n * The ID of the current user. Used to differentiate between incoming and outgoing messages.\n */\n currentUserId?: string;\n /**\n * If `true`, prevents the chat from automatically scrolling to the latest message.\n */\n disableAutoScroll?: boolean;\n /**\n * If `true`, disables the ability to upload and send attachments.\n * Defaults to `false`.\n */\n disableInputAttachments?: boolean;\n /**\n * Indicates whether the other user is currently typing a message.\n */\n isTyping?: boolean;\n /**\n * The accepted files that could be attached.\n * Defines the file types as a list of comma-separated values (e.g. \"image/*,.pdf\") that the file input should accept.\n */\n acceptedFiles?: string;\n /**\n * Optional header text to display at the top of the chat component.\n */\n headerText?: string;\n /**\n * Optional placeholder text for the chat input area.\n * Provides a hint to the user about what they can type (e.g. \"Type a message...\").\n */\n inputPlaceholder?: string;\n /**\n * Suggested text snippets or quick replies that can be shown as user-selectable options.\n */\n suggestions?: string[];\n /**\n * Controls the position of the chat suggestions within the component layout.\n *\n * - `\"below-input\"`: Renders suggestions below the chat input area.\n * - `\"below-messages\"`: Renders suggestions below the chat messages area.\n *\n * Default is `\"below-messages\"`.\n */\n suggestionsPosition?: 'below-input' | 'below-messages';\n /**\n * Time in milliseconds to wait before dispatching a stop typing event.\n * Default is `3000`.\n */\n stopTypingDelay?: number;\n /**\n * A set of template override functions used to customize rendering of messages, attachments, etc.\n */\n templates?: Partial<IgcChatTemplates>;\n\n messageRenderer?: ChatMessageRenderer;\n};\n\n/**\n * A collection of template functions used to customize different parts of the chat component.\n * Each template allows you to override the rendering of a specific part of the component.\n */\nexport type IgcChatTemplates = {\n /**\n * Template for rendering the attachments of a message.\n */\n attachmentsTemplate?: (\n message: IgcMessage,\n ctx: { templates: Partial<IgcChatTemplates> }\n ) => unknown;\n\n /**\n * Template for rendering an attachment in a message.\n * This allows customization of how each attachment is displayed.\n */\n attachmentTemplate?: (\n attachment: IgcMessageAttachment,\n message: IgcMessage\n ) => unknown;\n\n /**\n * Template for rendering a custom header above the attachment in a message.\n */\n attachmentHeaderTemplate?: (\n attachment: IgcMessageAttachment,\n message: IgcMessage\n ) => unknown;\n\n /**\n * Template for rendering the main content of an attachment, such as a thumbnail or file preview.\n */\n attachmentContentTemplate?: (attachment: IgcMessageAttachment) => unknown;\n\n /**\n * Template for rendering an information about the author of a single chat message.\n * Use this to customize message layout, formatting, or metadata.\n */\n messageAuthorTemplate?: (message: IgcMessage) => unknown;\n\n /**\n * Template for rendering a single chat message.\n * Use this to customize message layout, formatting, or metadata.\n */\n messageTemplate?: MessageTemplate;\n\n /**\n * Template for rendering the actions available for a message (e.g. copy, like, dislike, regenerate).\n * This allows customization of the buttons or controls shown for each message.\n */\n messageActionsTemplate?: (message: IgcMessage) => unknown;\n\n /**\n * Template used to show an indicator when the other user is typing (e.g. “User is typing...”).\n */\n typingIndicatorTemplate?: unknown;\n\n /**\n * Template for customizing the text input element (usually a `<textarea>` or `<input>`).\n *\n * @param text - The current value of the text input.\n * @returns {unknown} A custom rendered representation of the text input.\n */\n textInputTemplate?: (text: string) => unknown;\n\n /**\n * Template for rendering additional controls in the message input area,\n * such as send buttons, emoji pickers, or voice recorders.\n */\n textAreaActionsTemplate?: () => unknown;\n\n /**\n * Template for rendering attachments that are currently queued for sending (in the input area).\n */\n textAreaAttachmentsTemplate?: AttachmentTemplate;\n\n /**\n * Template for rendering the suggestion prefix.\n */\n suggestionPrefixTemplate?: unknown;\n};\n\n/**\n * @interface\n * Interface for rendering chat messages within a component, such as in a Lit-based chat UI.\n *\n * Defines how a given {@link IgcMessage} should be rendered.\n *\n * @export\n */\n\nexport interface ChatMessageRenderer {\n /**\n * Renders a given message.\n * @param {IgcMessage} message The message to render.\n * @returns {unknown} The rendered output, typically an HTMLElement, DocumentFragment, or a lit-html TemplateResult,\n * depending on the renderer implementation.\n */\n render(\n message: IgcMessage,\n ctx?: {\n renderText: (message: IgcMessage) => unknown;\n templates: Partial<IgcChatTemplates>;\n }\n ): unknown;\n\n /**\n * Performs optional asynchronous initialization.\n * This method is called before any rendering occurs and can be used to load resources\n * like syntax highlighters or fonts.\n * @async\n * @returns {Promise<void>} A promise that resolves when initialization is complete.\n */\n init?(): Promise<void>;\n}\n\nexport const attachmentIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M720-330q0 104-73 177T470-80q-104 0-177-73t-73-177v-370q0-75 52.5-127.5T400-880q75 0 127.5 52.5T580-700v350q0 46-32 78t-78 32q-46 0-78-32t-32-78v-370h80v370q0 13 8.5 21.5T470-320q13 0 21.5-8.5T500-350v-350q-1-42-29.5-71T400-800q-42 0-71 29t-29 71v370q-1 71 49 120.5T470-160q70 0 119-49.5T640-330v-390h80v390Z\"/></svg>';\nexport const sendButtonIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M120-160v-640l760 320-760 320Zm80-120 474-200-474-200v140l240 60-240 60v140Zm0 0v-400 400Z\"/></svg>';\nexport const closeIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z\"/></svg>';\nexport const fileIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z\"/></svg>';\nexport const imageIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z\"/></svg>';\nexport const moreIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z\"/></svg>';\nexport const previewIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h280v80H200v560h560v-280h80v280q0 33-23.5 56.5T760-120H200Zm188-212-56-56 372-372H560v-80h280v280h-80v-144L388-332Z\"/></svg>';\nexport const fileImageIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\"><path d=\"M6.75 1.5L5.3775 3H3C2.175 3 1.5 3.675 1.5 4.5V13.5C1.5 14.325 2.175 15 3 15H15C15.825 15 16.5 14.325 16.5 13.5V4.5C16.5 3.675 15.825 3 15 3H12.6225L11.25 1.5H6.75ZM9 12.75C6.93 12.75 5.25 11.07 5.25 9C5.25 6.93 6.93 5.25 9 5.25C11.07 5.25 12.75 6.93 12.75 9C12.75 11.07 11.07 12.75 9 12.75Z\"/></svg>';\nexport const fileDocumentIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\"><path d=\"M4.5 1.5C3.675 1.5 3.0075 2.175 3.0075 3L3 15C3 15.825 3.6675 16.5 4.4925 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5H4.5ZM9.75 6.75V2.625L13.875 6.75H9.75Z\"/></svg>';\nexport const copyIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z\"/></svg>';\nexport const thumbUpIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M720-120H280v-520l280-280 50 50q7 7 11.5 19t4.5 23v14l-44 174h258q32 0 56 24t24 56v80q0 7-2 15t-4 15L794-168q-9 20-30 34t-44 14Zm-360-80h360l120-280v-80H480l54-220-174 174v406Zm0-406v406-406Zm-80-34v80H160v360h120v80H80v-520h200Z\"/></svg>';\nexport const thumbDownIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M240-840h440v520L400-40l-50-50q-7-7-11.5-19t-4.5-23v-14l44-174H120q-32 0-56-24t-24-56v-80q0-7 2-15t4-15l120-282q9-20 30-34t44-14Zm360 80H240L120-480v80h360l-54 220 174-174v-406Zm0 406v-406 406Zm80 34v-80h120v-360H680v-80h200v520H680Z\"/></svg>';\nexport const regenerateIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e3e3e3\"><path d=\"M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z\"/></svg>';\nexport const starIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"25\" viewBox=\"0 0 24 25\"><path d=\"M6.58624 4.76825C6.72103 4.41058 7.23629 4.41058 7.37112 4.76825L7.92907 6.24921C7.94973 6.30414 7.98177 6.35321 8.02248 6.39423C8.06524 6.43719 8.11758 6.47089 8.17626 6.49213L9.6841 7.04022C10.0484 7.17255 10.0484 7.67865 9.6841 7.81097L8.17626 8.35907C8.10738 8.38422 8.04729 8.42621 8.00109 8.48016C7.97045 8.51605 7.94595 8.55707 7.92907 8.60199L7.37112 10.0829C7.23629 10.4409 6.72103 10.4409 6.58624 10.0829L6.02828 8.60199C5.98589 8.48944 5.89559 8.40082 5.78106 8.35907L4.27322 7.81097C3.90893 7.67865 3.90893 7.17255 4.27322 7.04022L5.78106 6.49213C5.89559 6.45062 5.98589 6.36176 6.02828 6.24921L6.58624 4.76825Z\" /><path d=\"M12.2095 8.05023C12.481 7.31659 13.519 7.31659 13.7905 8.05023L14.9144 11.0876C14.9997 11.3183 15.1816 11.5002 15.4123 11.5856L18.4496 12.7094C19.1835 12.9809 19.1835 14.019 18.4496 14.2905L15.4123 15.4142C15.1816 15.4997 14.9997 15.6816 14.9144 15.9123L13.7905 18.9496C13.519 19.6833 12.481 19.6833 12.2095 18.9496L11.0856 15.9123C11.0002 15.6816 10.8183 15.4997 10.5876 15.4142L7.55038 14.2905C6.81652 14.019 6.81652 12.9809 7.55038 12.7094L10.5876 11.5856C10.8183 11.5002 11.0002 11.3183 11.0856 11.0876L12.2095 8.05023Z\" /><path d=\"M6.63354 16.7551C6.75942 16.415 7.24056 16.415 7.36645 16.7551L7.67638 17.5927C7.71597 17.6996 7.80029 17.7839 7.90725 17.8234L8.74487 18.1335C9.08504 18.2595 9.08504 18.7404 8.74487 18.8664L7.90725 19.1765C7.85857 19.1945 7.8146 19.2216 7.7774 19.256C7.73281 19.2973 7.69796 19.3488 7.67638 19.4072L7.36645 20.2448C7.24056 20.5849 6.75942 20.5849 6.63354 20.2448L6.3236 19.4072C6.3055 19.3583 6.27807 19.3141 6.2434 19.2768C6.2022 19.2326 6.15081 19.1979 6.09274 19.1765L5.25512 18.8664C4.91494 18.7404 4.91494 18.2595 5.25512 18.1335L6.09274 17.8234C6.1997 17.7839 6.28402 17.6996 6.3236 17.5927L6.63354 16.7551Z\" /><path d=\"M18.3664 5.75507C18.2406 5.41498 17.7594 5.41498 17.6335 5.75507L17.3236 6.59271C17.284 6.69965 17.1997 6.78387 17.0928 6.82343L16.2551 7.13348C15.915 7.25946 15.915 7.74042 16.2551 7.86639L17.0928 8.17645C17.1997 8.216 17.284 8.30023 17.3236 8.40717L17.6335 9.24481C17.7594 9.5849 18.2406 9.5849 18.3664 9.24481L18.6764 8.40717C18.716 8.30023 18.8003 8.216 18.9072 8.17645L19.7449 7.86639C20.085 7.74042 20.085 7.25946 19.7449 7.13348L18.9072 6.82343C18.8003 6.78387 18.716 6.69965 18.6764 6.59271L18.3664 5.75507Z\" /></svg>';\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/chat/types.ts"],"names":[],"mappings":"","sourcesContent":["import type IgcChatComponent from './chat.js';\n\n/**\n * Represents a single chat message in the conversation.\n */\nexport interface IgcMessage {\n /**\n * A unique identifier for the message.\n */\n id: string;\n\n /**\n * The textual content of the message.\n */\n text: string;\n\n /**\n * The identifier or name of the sender of the message.\n */\n sender: string;\n\n /**\n * The timestamp indicating when the message was sent.\n */\n timestamp?: string;\n\n /**\n * Optional list of attachments associated with the message,\n * such as images, files, or links.\n */\n attachments?: IgcMessageAttachment[];\n\n /**\n * Optional list of reactions associated with the message.\n */\n reactions?: string[];\n}\n\n/**\n * Represents an attachment associated with a chat message.\n */\nexport interface IgcMessageAttachment {\n /**\n * A unique identifier for the attachment.\n */\n id: string;\n\n /**\n * The display name of the attachment (e.g. file name).\n */\n name: string;\n\n /**\n * The URL from which the attachment can be downloaded or viewed.\n * Typically used for attachments stored on a server or CDN.\n */\n url?: string;\n\n /**\n * The actual File object, if the attachment was provided locally (e.g. via upload).\n */\n file?: File;\n\n /**\n * The MIME type or a custom type identifier for the attachment (e.g. \"image/png\", \"pdf\", \"audio\").\n */\n type?: string;\n\n /**\n * Optional URL to a thumbnail preview of the attachment (e.g. for images or videos).\n */\n thumbnail?: string;\n}\n\n/**\n * Configuration options for customizing the behavior and appearance of the chat component.\n */\nexport type IgcChatOptions = {\n /**\n * The ID of the current user. Used to differentiate between incoming and outgoing messages.\n */\n currentUserId?: string;\n /**\n * If `true`, prevents the chat from automatically scrolling to the latest message.\n */\n disableAutoScroll?: boolean;\n /**\n * If `true`, disables the ability to upload and send attachments.\n * Defaults to `false`.\n */\n disableInputAttachments?: boolean;\n /**\n * Indicates whether the other user is currently typing a message.\n */\n isTyping?: boolean;\n /**\n * The accepted files that could be attached.\n * Defines the file types as a list of comma-separated values (e.g. \"image/*,.pdf\") that the file input should accept.\n */\n acceptedFiles?: string;\n /**\n * Optional header text to display at the top of the chat component.\n */\n headerText?: string;\n /**\n * Optional placeholder text for the chat input area.\n * Provides a hint to the user about what they can type (e.g. \"Type a message...\").\n */\n inputPlaceholder?: string;\n /**\n * Suggested text snippets or quick replies that can be shown as user-selectable options.\n */\n suggestions?: string[];\n /**\n * Controls the position of the chat suggestions within the component layout.\n *\n * - `\"below-input\"`: Renders suggestions below the chat input area.\n * - `\"below-messages\"`: Renders suggestions below the chat messages area.\n *\n * Default is `\"below-messages\"`.\n */\n suggestionsPosition?: 'below-input' | 'below-messages';\n /**\n * Time in milliseconds to wait before dispatching a stop typing event.\n * Default is `3000`.\n */\n stopTypingDelay?: number;\n\n renderers?: Partial<ChatRenderers>;\n};\n\nexport type ChatRenderers = {\n attachment?: ChatTemplateRenderer<AttachmentRendererContext>;\n attachmentContent?: ChatTemplateRenderer<AttachmentRendererContext>;\n attachmentHeader?: ChatTemplateRenderer<AttachmentRendererContext>;\n fileUploadButton?: ChatTemplateRenderer<ChatRendererContext>;\n input?: ChatTemplateRenderer<InputRendererContext>;\n inputActions?: ChatTemplateRenderer<ChatRendererContext>;\n inputAttachments?: ChatTemplateRenderer<InputRendererContext>;\n message?: ChatTemplateRenderer<MessageRendererContext>;\n messageActions?: ChatTemplateRenderer<MessageRendererContext>;\n messageAttachments?: ChatTemplateRenderer<MessageRendererContext>;\n messageContent?: ChatTemplateRenderer<MessageRendererContext>;\n messageHeader?: ChatTemplateRenderer<MessageRendererContext>;\n typingIndicator?: ChatTemplateRenderer<ChatRendererContext>;\n sendButton?: ChatTemplateRenderer<ChatRendererContext>;\n suggestionPrefix?: ChatTemplateRenderer<ChatRendererContext>;\n};\n\nexport type ChatTemplateRenderer<T> = (ctx: T) => unknown;\n\nexport interface ChatRendererContext {\n defaults: ChatRenderers;\n instance: IgcChatComponent;\n}\n\nexport interface InputRendererContext extends ChatRendererContext {\n attachments: IgcMessageAttachment[];\n value: string;\n}\n\nexport interface MessageRendererContext extends ChatRendererContext {\n message: IgcMessage;\n}\n\nexport interface AttachmentRendererContext extends MessageRendererContext {\n attachment: IgcMessageAttachment;\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import type IgcChatMessageComponent from './chat-message.js';
2
+ import type { IgcMessageAttachment } from './types.js';
3
+ export type ChatAcceptedFileTypes = {
4
+ extensions: Set<string>;
5
+ mimeTypes: Set<string>;
6
+ wildcardTypes: Set<string>;
7
+ };
8
+ export declare const ChatFileTypeIcons: Map<string, string>;
9
+ export declare function parseAcceptedFileTypes(fileTypes: string): ChatAcceptedFileTypes;
10
+ export declare function isAcceptedFileType(file: File, accepted: ChatAcceptedFileTypes | null): boolean;
11
+ export declare function getChatAcceptedFiles(event: DragEvent, accepted: ChatAcceptedFileTypes | null): File[];
12
+ export declare function getIconName(fileType?: string): "attach_document" | "attach_image";
13
+ export declare function createAttachmentURL(attachment: IgcMessageAttachment): string;
14
+ export declare function getFileExtension(name: string): string;
15
+ export declare function isImageAttachment(attachment: IgcMessageAttachment | File): boolean;
16
+ export declare function showChatActionsTooltip(target: Element, message: string): void;
17
+ export declare function chatMessageAdoptPageStyles(message: IgcChatMessageComponent): void;
@@ -0,0 +1,94 @@
1
+ import { adoptStyles } from 'lit';
2
+ import { last } from '../common/util.js';
3
+ import IgcTooltipComponent from '../tooltip/tooltip.js';
4
+ let actionsTooltip;
5
+ export const ChatFileTypeIcons = new Map(Object.entries({
6
+ css: 'file_css',
7
+ csv: 'file_csv',
8
+ doc: 'file_doc',
9
+ docx: 'file_doc',
10
+ htm: 'file_htm',
11
+ html: 'file_html',
12
+ js: 'file_js',
13
+ json: 'file_json',
14
+ pdf: 'file_pdf',
15
+ rtf: 'file_rtf',
16
+ svg: 'file_svg',
17
+ txt: 'file_txt',
18
+ url: 'file_link',
19
+ xls: 'file_xls',
20
+ xlsx: 'file_xls',
21
+ xml: 'file_xml',
22
+ zip: 'file_zip',
23
+ default: 'file_generic',
24
+ }));
25
+ export function parseAcceptedFileTypes(fileTypes) {
26
+ const types = fileTypes.split(',').map((each) => each.trim().toLowerCase());
27
+ return {
28
+ extensions: new Set(types.filter((t) => t.startsWith('.'))),
29
+ mimeTypes: new Set(types.filter((t) => !t.startsWith('.') && !t.endsWith('/*'))),
30
+ wildcardTypes: new Set(types.filter((t) => t.endsWith('/*')).map((t) => t.slice(0, -2))),
31
+ };
32
+ }
33
+ export function isAcceptedFileType(file, accepted) {
34
+ if (!(accepted && file)) {
35
+ return true;
36
+ }
37
+ const { extensions, mimeTypes, wildcardTypes } = accepted;
38
+ const fileType = file.type.toLowerCase();
39
+ const fileExtension = `.${last(file.name.split('.'))?.toLowerCase()}`;
40
+ const [fileBaseType] = fileType.split('/');
41
+ return (extensions.has(fileExtension) ||
42
+ mimeTypes.has(fileType) ||
43
+ wildcardTypes.has(fileBaseType));
44
+ }
45
+ export function getChatAcceptedFiles(event, accepted) {
46
+ return Array.from(event.dataTransfer?.items ?? [])
47
+ .filter((item) => item.kind === 'file' && isAcceptedFileType(item.getAsFile(), accepted))
48
+ .map((item) => item.getAsFile());
49
+ }
50
+ export function getIconName(fileType) {
51
+ return fileType?.startsWith('image') ? 'attach_image' : 'attach_document';
52
+ }
53
+ export function createAttachmentURL(attachment) {
54
+ if (attachment.file) {
55
+ return URL.createObjectURL(attachment.file);
56
+ }
57
+ return attachment.url || '';
58
+ }
59
+ export function getFileExtension(name) {
60
+ const parts = name.split('.');
61
+ return parts.length > 1 ? last(parts) : '';
62
+ }
63
+ export function isImageAttachment(attachment) {
64
+ if (attachment instanceof File) {
65
+ return attachment.type.startsWith('image/');
66
+ }
67
+ return Boolean(attachment.type === 'image' || attachment.file?.type.startsWith('image/'));
68
+ }
69
+ export function showChatActionsTooltip(target, message) {
70
+ if (!actionsTooltip) {
71
+ actionsTooltip = document.createElement(IgcTooltipComponent.tagName);
72
+ actionsTooltip.hideTriggers = 'pointerleave,click,blur';
73
+ actionsTooltip.hideDelay = 100;
74
+ document.body.appendChild(actionsTooltip);
75
+ }
76
+ actionsTooltip.message = message;
77
+ actionsTooltip.show(target);
78
+ }
79
+ export function chatMessageAdoptPageStyles(message) {
80
+ const sheets = [];
81
+ for (const sheet of document.styleSheets) {
82
+ try {
83
+ const constructed = new CSSStyleSheet();
84
+ for (const rule of sheet.cssRules) {
85
+ constructed.insertRule(rule.cssText);
86
+ }
87
+ sheets.push(constructed);
88
+ }
89
+ catch { }
90
+ }
91
+ const ctor = message.constructor;
92
+ adoptStyles(message.shadowRoot, [...ctor.elementStyles, ...sheets]);
93
+ }
94
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/chat/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { adoptStyles, type LitElement } from 'lit';\nimport { last } from '../common/util.js';\nimport IgcTooltipComponent from '../tooltip/tooltip.js';\nimport type IgcChatMessageComponent from './chat-message.js';\nimport type { IgcMessageAttachment } from './types.js';\n\nlet actionsTooltip: IgcTooltipComponent;\n\nexport type ChatAcceptedFileTypes = {\n extensions: Set<string>;\n mimeTypes: Set<string>;\n wildcardTypes: Set<string>;\n};\n\nexport const ChatFileTypeIcons = new Map(\n Object.entries({\n css: 'file_css',\n csv: 'file_csv',\n doc: 'file_doc',\n docx: 'file_doc',\n htm: 'file_htm',\n html: 'file_html',\n js: 'file_js',\n json: 'file_json',\n pdf: 'file_pdf',\n rtf: 'file_rtf',\n svg: 'file_svg',\n txt: 'file_txt',\n url: 'file_link',\n xls: 'file_xls',\n xlsx: 'file_xls',\n xml: 'file_xml',\n zip: 'file_zip',\n default: 'file_generic',\n })\n);\n\nexport function parseAcceptedFileTypes(\n fileTypes: string\n): ChatAcceptedFileTypes {\n const types = fileTypes.split(',').map((each) => each.trim().toLowerCase());\n return {\n extensions: new Set(types.filter((t) => t.startsWith('.'))),\n mimeTypes: new Set(\n types.filter((t) => !t.startsWith('.') && !t.endsWith('/*'))\n ),\n wildcardTypes: new Set(\n types.filter((t) => t.endsWith('/*')).map((t) => t.slice(0, -2))\n ),\n };\n}\n\nexport function isAcceptedFileType(\n file: File,\n accepted: ChatAcceptedFileTypes | null\n): boolean {\n if (!(accepted && file)) {\n return true;\n }\n\n const { extensions, mimeTypes, wildcardTypes } = accepted;\n const fileType = file.type.toLowerCase();\n const fileExtension = `.${last(file.name.split('.'))?.toLowerCase()}`;\n const [fileBaseType] = fileType.split('/');\n\n return (\n extensions.has(fileExtension) ||\n mimeTypes.has(fileType) ||\n wildcardTypes.has(fileBaseType)\n );\n}\n\nexport function getChatAcceptedFiles(\n event: DragEvent,\n accepted: ChatAcceptedFileTypes | null\n): File[] {\n return Array.from(event.dataTransfer?.items ?? [])\n .filter(\n (item) =>\n item.kind === 'file' && isAcceptedFileType(item.getAsFile()!, accepted)\n )\n .map((item) => item.getAsFile()!);\n}\n\nexport function getIconName(fileType?: string) {\n return fileType?.startsWith('image') ? 'attach_image' : 'attach_document';\n}\n\nexport function createAttachmentURL(attachment: IgcMessageAttachment): string {\n if (attachment.file) {\n return URL.createObjectURL(attachment.file);\n }\n\n return attachment.url || '';\n}\n\nexport function getFileExtension(name: string): string {\n const parts = name.split('.');\n return parts.length > 1 ? last(parts) : '';\n}\n\nexport function isImageAttachment(\n attachment: IgcMessageAttachment | File\n): boolean {\n if (attachment instanceof File) {\n return attachment.type.startsWith('image/');\n }\n\n return Boolean(\n attachment.type === 'image' || attachment.file?.type.startsWith('image/')\n );\n}\n\nexport function showChatActionsTooltip(target: Element, message: string): void {\n if (!actionsTooltip) {\n actionsTooltip = document.createElement(IgcTooltipComponent.tagName);\n actionsTooltip.hideTriggers = 'pointerleave,click,blur';\n actionsTooltip.hideDelay = 100;\n document.body.appendChild(actionsTooltip);\n }\n actionsTooltip.message = message;\n actionsTooltip.show(target);\n}\n\n// REVIEW: Maybe put that behind a configuration flag as this is nasty.\nexport function chatMessageAdoptPageStyles(\n message: IgcChatMessageComponent\n): void {\n const sheets: CSSStyleSheet[] = [];\n\n for (const sheet of document.styleSheets) {\n try {\n const constructed = new CSSStyleSheet();\n for (const rule of sheet.cssRules) {\n constructed.insertRule(rule.cssText);\n }\n sheets.push(constructed);\n } catch {}\n }\n\n const ctor = message.constructor as typeof LitElement;\n adoptStyles(message.shadowRoot!, [...ctor.elementStyles, ...sheets]);\n}\n"]}
@@ -13,7 +13,7 @@ export interface IgcCheckboxComponentEventMap {
13
13
  declare const IgcCheckboxBaseComponent_base: Constructor<import("../common/mixins/forms/types.js").FormRequiredInterface & import("../common/mixins/forms/types.js").FormAssociatedCheckboxElementInterface> & Constructor<import("../common/mixins/event-emitter.js").EventEmitterInterface<IgcCheckboxComponentEventMap>> & Constructor<LitElement>;
14
14
  export declare class IgcCheckboxBaseComponent extends IgcCheckboxBaseComponent_base {
15
15
  protected get __validators(): import("../common/validators.js").Validator<IgcCheckboxBaseComponent>[];
16
- protected readonly _slots: import("../common/controllers/slot.js").SlotController<"invalid" | "[default]" | "helper-text" | "value-missing" | "custom-error">;
16
+ protected readonly _slots: import("../common/controllers/slot.js").SlotController<"invalid" | "helper-text" | "[default]" | "value-missing" | "custom-error">;
17
17
  protected readonly _focusRingManager: import("../common/controllers/focus-ring.js").KeyboardFocusRingController;
18
18
  protected readonly _formValue: import("../common/mixins/forms/form-value.js").FormValue<boolean>;
19
19
  protected _value: string;
@@ -17,7 +17,7 @@ import { styles } from './themes/checkbox.base.css.js';
17
17
  import { all } from './themes/checkbox-themes.js';
18
18
  import { styles as shared } from './themes/shared/checkbox/checkbox.common.css.js';
19
19
  let nextId = 1;
20
- class IgcCheckboxComponent extends IgcCheckboxBaseComponent {
20
+ export default class IgcCheckboxComponent extends IgcCheckboxBaseComponent {
21
21
  constructor() {
22
22
  super(...arguments);
23
23
  this._themes = addThemingController(this, all);
@@ -25,6 +25,8 @@ class IgcCheckboxComponent extends IgcCheckboxBaseComponent {
25
25
  this._labelId = `checkbox-label-${this._inputId}`;
26
26
  this.indeterminate = false;
27
27
  }
28
+ static { this.tagName = 'igc-checkbox'; }
29
+ static { this.styles = [styles, shared]; }
28
30
  static register() {
29
31
  registerComponent(IgcCheckboxComponent, IgcValidationContainerComponent);
30
32
  }
@@ -99,9 +101,6 @@ class IgcCheckboxComponent extends IgcCheckboxBaseComponent {
99
101
  `;
100
102
  }
101
103
  }
102
- IgcCheckboxComponent.tagName = 'igc-checkbox';
103
- IgcCheckboxComponent.styles = [styles, shared];
104
- export default IgcCheckboxComponent;
105
104
  __decorate([
106
105
  property({ type: Boolean, reflect: true })
107
106
  ], IgcCheckboxComponent.prototype, "indeterminate", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, type TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { IgcCheckboxBaseComponent } from './checkbox-base.js';\nimport { styles } from './themes/checkbox.base.css.js';\nimport { all } from './themes/checkbox-themes.js';\nimport { styles as shared } from './themes/shared/checkbox/checkbox.common.css.js';\n\nlet nextId = 1;\n\n/**\n * A check box allowing single values to be selected/deselected.\n *\n * @element igc-checkbox\n *\n * @slot - The checkbox label.\n * @slot helper-text - Renders content below the input.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcChange - Emitted when the control's checked state changes.\n *\n * @csspart base - The base wrapper of the checkbox.\n * @csspart control - The checkbox input element.\n * @csspart label - The checkbox label.\n * @csspart indicator - The checkbox indicator icon.\n */\nexport default class IgcCheckboxComponent extends IgcCheckboxBaseComponent {\n public static readonly tagName = 'igc-checkbox';\n protected static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcCheckboxComponent, IgcValidationContainerComponent);\n }\n\n private readonly _themes = addThemingController(this, all);\n\n private readonly _inputId = `checkbox-${nextId++}`;\n private readonly _labelId = `checkbox-label-${this._inputId}`;\n\n /**\n * Draws the checkbox in indeterminate state.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public indeterminate = false;\n\n protected override _handleClick(event: PointerEvent): void {\n this.indeterminate = false;\n super._handleClick(event);\n }\n\n protected _renderValidatorContainer(): TemplateResult {\n return IgcValidationContainerComponent.create(this);\n }\n\n protected _renderStandard() {\n return html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M4.1,12.7 9,17.6 20.3,6.3\" />\n </svg>\n `;\n }\n\n protected _renderIndigo() {\n return html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <rect width=\"18\" height=\"4\" x=\"3\" y=\"10\" rx=\"1.85\" />\n <path\n d=\"M19.033 5a1.966 1.966 0 0 0-1.418.586l-8.479 8.577-2.753-2.77a1.971 1.971 0 0 0-2.8 0 1.998 1.998 0 0 0 0 2.822l4.155 4.196a1.955 1.955 0 0 0 2.8 0l9.879-9.99a1.998 1.998 0 0 0 0-2.821 1.966 1.966 0 0 0-1.384-.6Z\"\n />\n </svg>\n `;\n }\n\n protected override render() {\n const labelledBy = this.getAttribute('aria-labelledby');\n const describedBy = this._slots.hasAssignedElements('helper-text')\n ? 'helper-text'\n : nothing;\n const checked = this.checked;\n\n return html`\n <label\n part=${partMap({\n base: true,\n checked,\n focused: this._focusRingManager.focused,\n })}\n for=${this._inputId}\n >\n <input\n id=${this._inputId}\n type=\"checkbox\"\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n .checked=${live(checked)}\n .indeterminate=${live(this.indeterminate)}\n aria-labelledby=${labelledBy ? labelledBy : this._labelId}\n aria-describedby=${describedBy}\n @click=${this._handleClick}\n @blur=${this._handleBlur}\n />\n <span part=${partMap({ control: true, checked })}>\n <span part=${partMap({ indicator: true, checked })}>\n ${this._themes.theme === 'indigo'\n ? this._renderIndigo()\n : this._renderStandard()}\n </span>\n </span>\n <span\n id=${this._labelId}\n part=${partMap({ label: true, checked })}\n ?hidden=${this._hideLabel}\n ><slot></slot>\n </span>\n </label>\n ${this._renderValidatorContainer()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-checkbox': IgcCheckboxComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/components/checkbox/checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, type TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport IgcValidationContainerComponent from '../validation-container/validation-container.js';\nimport { IgcCheckboxBaseComponent } from './checkbox-base.js';\nimport { styles } from './themes/checkbox.base.css.js';\nimport { all } from './themes/checkbox-themes.js';\nimport { styles as shared } from './themes/shared/checkbox/checkbox.common.css.js';\n\nlet nextId = 1;\n\n/**\n * A check box allowing single values to be selected/deselected.\n *\n * @element igc-checkbox\n *\n * @slot - The checkbox label.\n * @slot helper-text - Renders content below the input.\n * @slot value-missing - Renders content when the required validation fails.\n * @slot custom-error - Renders content when setCustomValidity(message) is set.\n * @slot invalid - Renders content when the component is in invalid state (validity.valid = false).\n *\n * @fires igcChange - Emitted when the control's checked state changes.\n *\n * @csspart base - The base wrapper of the checkbox.\n * @csspart control - The checkbox input element.\n * @csspart label - The checkbox label.\n * @csspart indicator - The checkbox indicator icon.\n */\nexport default class IgcCheckboxComponent extends IgcCheckboxBaseComponent {\n public static readonly tagName = 'igc-checkbox';\n protected static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcCheckboxComponent, IgcValidationContainerComponent);\n }\n\n private readonly _themes = addThemingController(this, all);\n\n private readonly _inputId = `checkbox-${nextId++}`;\n private readonly _labelId = `checkbox-label-${this._inputId}`;\n\n /**\n * Draws the checkbox in indeterminate state.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public indeterminate = false;\n\n protected override _handleClick(event: PointerEvent): void {\n this.indeterminate = false;\n super._handleClick(event);\n }\n\n protected _renderValidatorContainer(): TemplateResult {\n return IgcValidationContainerComponent.create(this);\n }\n\n protected _renderStandard() {\n return html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M4.1,12.7 9,17.6 20.3,6.3\" />\n </svg>\n `;\n }\n\n protected _renderIndigo() {\n return html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <rect width=\"18\" height=\"4\" x=\"3\" y=\"10\" rx=\"1.85\" />\n <path\n d=\"M19.033 5a1.966 1.966 0 0 0-1.418.586l-8.479 8.577-2.753-2.77a1.971 1.971 0 0 0-2.8 0 1.998 1.998 0 0 0 0 2.822l4.155 4.196a1.955 1.955 0 0 0 2.8 0l9.879-9.99a1.998 1.998 0 0 0 0-2.821 1.966 1.966 0 0 0-1.384-.6Z\"\n />\n </svg>\n `;\n }\n\n protected override render() {\n const labelledBy = this.getAttribute('aria-labelledby');\n const describedBy = this._slots.hasAssignedElements('helper-text')\n ? 'helper-text'\n : nothing;\n const checked = this.checked;\n\n return html`\n <label\n part=${partMap({\n base: true,\n checked,\n focused: this._focusRingManager.focused,\n })}\n for=${this._inputId}\n >\n <input\n id=${this._inputId}\n type=\"checkbox\"\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n .checked=${live(checked)}\n .indeterminate=${live(this.indeterminate)}\n aria-labelledby=${labelledBy ? labelledBy : this._labelId}\n aria-describedby=${describedBy}\n @click=${this._handleClick}\n @blur=${this._handleBlur}\n />\n <span part=${partMap({ control: true, checked })}>\n <span part=${partMap({ indicator: true, checked })}>\n ${this._themes.theme === 'indigo'\n ? this._renderIndigo()\n : this._renderStandard()}\n </span>\n </span>\n <span\n id=${this._labelId}\n part=${partMap({ label: true, checked })}\n ?hidden=${this._hideLabel}\n ><slot></slot>\n </span>\n </label>\n ${this._renderValidatorContainer()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-checkbox': IgcCheckboxComponent;\n }\n}\n"]}
@@ -9,7 +9,9 @@ import { styles as shared } from './themes/shared/switch/switch.common.css.js';
9
9
  import { styles } from './themes/switch.base.css.js';
10
10
  import { all } from './themes/switch-themes.js';
11
11
  let nextId = 1;
12
- class IgcSwitchComponent extends IgcCheckboxBaseComponent {
12
+ export default class IgcSwitchComponent extends IgcCheckboxBaseComponent {
13
+ static { this.tagName = 'igc-switch'; }
14
+ static { this.styles = [styles, shared]; }
13
15
  static register() {
14
16
  registerComponent(IgcSwitchComponent);
15
17
  }
@@ -56,7 +58,4 @@ class IgcSwitchComponent extends IgcCheckboxBaseComponent {
56
58
  `;
57
59
  }
58
60
  }
59
- IgcSwitchComponent.tagName = 'igc-switch';
60
- IgcSwitchComponent.styles = [styles, shared];
61
- export default IgcSwitchComponent;
62
61
  //# sourceMappingURL=switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/components/checkbox/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,IAAI,MAAM,GAAG,CAAC,CAAC;AAgBf,MAAqB,kBAAmB,SAAQ,wBAAwB;IAK/D,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAKD;QACE,KAAK,EAAE,CAAC;QAJO,aAAQ,GAAG,UAAU,MAAM,EAAE,EAAE,CAAC;QAChC,aAAQ,GAAG,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAI1D,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,MAAM;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,OAAO,IAAI,CAAA;oBACK,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,IAAI,CAAC,QAAQ;;eAE1D,IAAI,CAAC,QAAQ;;iBAEX,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;kBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;sBACjB,IAAI,CAAC,QAAQ;sBACb,IAAI,CAAC,QAAQ;qBACd,IAAI,CAAC,OAAO,CAAC;4BACN,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;mBAChD,IAAI,CAAC,YAAY;kBAClB,IAAI,CAAC,WAAW;;;iBAGjB,OAAO,CAAC;YACb,OAAO,EAAE,IAAI;YACb,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;SACxC,CAAC;;uBAEW,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;;eAGzC,IAAI,CAAC,QAAQ;iBACX,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oBAC9B,IAAI,CAAC,UAAU;;;;;KAK9B,CAAC;IACJ,CAAC;;AApDsB,0BAAO,GAAG,YAAY,AAAf,CAAgB;AAChC,yBAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;eAFrB,kBAAkB","sourcesContent":["import { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport { IgcCheckboxBaseComponent } from './checkbox-base.js';\nimport { styles as shared } from './themes/shared/switch/switch.common.css.js';\nimport { styles } from './themes/switch.base.css.js';\nimport { all } from './themes/switch-themes.js';\n\nlet nextId = 1;\n\n/**\n * Similar to a checkbox, a switch controls the state of a single setting on or off.\n *\n * @element igc-switch\n *\n * @slot - The switch label.\n *\n * @fires igcChange - Emitted when the control's checked state changes.\n *\n * @csspart base - The base wrapper of the switch.\n * @csspart control - The switch input element.\n * @csspart thumb - The position indicator of the switch.\n * @csspart label - The switch label.\n */\nexport default class IgcSwitchComponent extends IgcCheckboxBaseComponent {\n public static readonly tagName = 'igc-switch';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcSwitchComponent);\n }\n\n private readonly _inputId = `switch-${nextId++}`;\n private readonly _labelId = `switch-label-${this._inputId}`;\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override render() {\n const labelledBy = this.getAttribute('aria-labelledby');\n const checked = this.checked;\n\n return html`\n <label part=${partMap({ base: true, checked })} for=${this._inputId}>\n <input\n id=${this._inputId}\n type=\"checkbox\"\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n .checked=${live(checked)}\n aria-labelledby=${labelledBy ? labelledBy : this._labelId}\n @click=${this._handleClick}\n @blur=${this._handleBlur}\n />\n <span\n part=${partMap({\n control: true,\n checked,\n focused: this._focusRingManager.focused,\n })}\n >\n <span part=${partMap({ thumb: true, checked })}></span>\n </span>\n <span\n id=${this._labelId}\n part=${partMap({ label: true, checked })}\n ?hidden=${this._hideLabel}\n >\n <slot></slot>\n </span>\n </label>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-switch': IgcSwitchComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/components/checkbox/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,IAAI,MAAM,GAAG,CAAC,CAAC;AAgBf,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,wBAAwB;aAC/C,YAAO,GAAG,YAAY,AAAf,CAAgB;aAChC,WAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;IAGjC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAKD;QACE,KAAK,EAAE,CAAC;QAJO,aAAQ,GAAG,UAAU,MAAM,EAAE,EAAE,CAAC;QAChC,aAAQ,GAAG,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAI1D,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,MAAM;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,OAAO,IAAI,CAAA;oBACK,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,IAAI,CAAC,QAAQ;;eAE1D,IAAI,CAAC,QAAQ;;iBAEX,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;kBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;sBACjB,IAAI,CAAC,QAAQ;sBACb,IAAI,CAAC,QAAQ;qBACd,IAAI,CAAC,OAAO,CAAC;4BACN,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;mBAChD,IAAI,CAAC,YAAY;kBAClB,IAAI,CAAC,WAAW;;;iBAGjB,OAAO,CAAC;YACb,OAAO,EAAE,IAAI;YACb,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;SACxC,CAAC;;uBAEW,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;;eAGzC,IAAI,CAAC,QAAQ;iBACX,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oBAC9B,IAAI,CAAC,UAAU;;;;;KAK9B,CAAC;IACJ,CAAC","sourcesContent":["import { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport { IgcCheckboxBaseComponent } from './checkbox-base.js';\nimport { styles as shared } from './themes/shared/switch/switch.common.css.js';\nimport { styles } from './themes/switch.base.css.js';\nimport { all } from './themes/switch-themes.js';\n\nlet nextId = 1;\n\n/**\n * Similar to a checkbox, a switch controls the state of a single setting on or off.\n *\n * @element igc-switch\n *\n * @slot - The switch label.\n *\n * @fires igcChange - Emitted when the control's checked state changes.\n *\n * @csspart base - The base wrapper of the switch.\n * @csspart control - The switch input element.\n * @csspart thumb - The position indicator of the switch.\n * @csspart label - The switch label.\n */\nexport default class IgcSwitchComponent extends IgcCheckboxBaseComponent {\n public static readonly tagName = 'igc-switch';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcSwitchComponent);\n }\n\n private readonly _inputId = `switch-${nextId++}`;\n private readonly _labelId = `switch-label-${this._inputId}`;\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override render() {\n const labelledBy = this.getAttribute('aria-labelledby');\n const checked = this.checked;\n\n return html`\n <label part=${partMap({ base: true, checked })} for=${this._inputId}>\n <input\n id=${this._inputId}\n type=\"checkbox\"\n name=${ifDefined(this.name)}\n value=${ifDefined(this.value)}\n ?required=${this.required}\n ?disabled=${this.disabled}\n .checked=${live(checked)}\n aria-labelledby=${labelledBy ? labelledBy : this._labelId}\n @click=${this._handleClick}\n @blur=${this._handleBlur}\n />\n <span\n part=${partMap({\n control: true,\n checked,\n focused: this._focusRingManager.focused,\n })}\n >\n <span part=${partMap({ thumb: true, checked })}></span>\n </span>\n <span\n id=${this._labelId}\n part=${partMap({ label: true, checked })}\n ?hidden=${this._hideLabel}\n >\n <slot></slot>\n </span>\n </label>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-switch': IgcSwitchComponent;\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { css } from 'lit';
2
- export const styles = css `:host ::part(helper-text){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-block-start:1rem;grid-auto-rows:minmax(1.125rem, auto)}[part~=label]{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);transition:none}[part~=indicator]{--indicator-size: 0.6875rem;transition:none}[part~=control]{--size: 1rem;border-radius:var(--border-radius-ripple);transition:all .15s ease-in-out;background:var(--empty-fill-color);transform:translate3d(0, 0, 0)}[part~=control]::after{border-radius:var(--border-radius);width:inherit;height:inherit;min-width:inherit;box-shadow:inset 0 0 0 .0625rem var(--empty-color);transition:all .15s ease-in-out}[part="control checked"]::after{background:var(--fill-color);box-shadow:inset 0 0 0 .0625rem var(--fill-color)}:host(:hover) [part~=control]::after{box-shadow:inset 0 0 0 .0625rem var(--empty-color-hover)}:host(:hover) [part="control checked"]::after{background:var(--fill-color-hover);box-shadow:inset 0 0 0 .0625rem var(--fill-color-hover)}:host(:focus-visible) [part~=control],[part~=focused] [part~=control]{box-shadow:0 0 0 .25rem var(--focus-outline-color)}:host(:focus-visible) [part=control]::after,[part~=focused] [part=control]::after{box-shadow:inset 0 0 0 .0625rem var(--focus-border-color)}:host(:focus-visible):hover [part=control]::after,[part~=focused]:hover [part=control]::after{box-shadow:inset 0 0 0 .0625rem hsl(from var(--focus-border-color) h calc(s * 1.12) calc(l * 0.82))}:host([indeterminate]) [part~=control]::after{background:var(--fill-color);box-shadow:inset 0 0 0 .0625rem var(--fill-color)}:host([indeterminate]) [part~=indicator]{transform:rotate(45deg) translateX(-0.075rem) scale(0.7)}:host(:not([disabled])[indeterminate]:hover) [part~=control]::after{background:var(--fill-color-hover);box-shadow:inset 0 0 0 .0625rem var(--fill-color-hover)}:host(:not([disabled]):state(ig-invalid)) [part~=control]::after,:host(:not(:disabled):state(ig-invalid)) [part~=control]::after{box-shadow:inset 0 0 0 .0625rem var(--error-color);border-color:var(--error-color)}:host(:not([disabled]):state(ig-invalid)) [part="control checked"]::after,:host(:not(:disabled):state(ig-invalid)) [part="control checked"]::after{background:var(--error-color)}:host(:not([disabled]):state(ig-invalid)):focus-visible [part~=control],:host(:not([disabled]):state(ig-invalid)):focus-visible [part="control checked"],:host(:not(:disabled):state(ig-invalid)):focus-visible [part~=control],:host(:not(:disabled):state(ig-invalid)):focus-visible [part="control checked"]{box-shadow:0 0 0 .25rem var(--focus-outline-color-error)}:host(:hover:not([disabled]):state(ig-invalid)) [part~=control]::after,:host(:hover:not([disabled]):state(ig-invalid)) [part="control checked"]::after,:host(:hover:not(:disabled):state(ig-invalid)) [part~=control]::after,:host(:hover:not(:disabled):state(ig-invalid)) [part="control checked"]::after,:host(:hover:not([disabled]):state(ig-invalid)[indeterminate]) [part~=control]::after,:host(:hover:not([disabled]):state(ig-invalid)[indeterminate]) [part="control checked"]::after,:host(:hover:not(:disabled):state(ig-invalid)[indeterminate]) [part~=control]::after,:host(:hover:not(:disabled):state(ig-invalid)[indeterminate]) [part="control checked"]::after{box-shadow:inset 0 0 0 .0625rem var(--error-color-hover)}:host(:hover:not([disabled]):state(ig-invalid)) [part="control checked"]::after,:host(:hover:not(:disabled):state(ig-invalid)) [part="control checked"]::after,:host(:hover:not([disabled]):state(ig-invalid)[indeterminate]) [part="control checked"]::after,:host(:hover:not(:disabled):state(ig-invalid)[indeterminate]) [part="control checked"]::after{background:var(--error-color-hover)}:host(:not([disabled]):state(ig-invalid)[indeterminate]) [part~=control]::after,:host(:not(:disabled):state(ig-invalid)[indeterminate]) [part~=control]::after{background:var(--error-color)}:host(:hover:not([disabled]):state(ig-invalid)[indeterminate]) [part~=control]::after,:host(:hover:not(:disabled):state(ig-invalid)[indeterminate]) [part~=control]::after{background:var(--error-color-hover)}:host(:focus-visible:not([disabled]):state(ig-invalid)) [part~=control],:host(:focus-visible:not(:disabled):state(ig-invalid)) [part~=control],:host(:not([disabled]):state(ig-invalid)) [part~=focused] [part~=control],:host(:not(:disabled):state(ig-invalid)) [part~=focused] [part~=control]{box-shadow:0 0 0 .25rem var(--focus-outline-color-error)}:host([disabled]) [part~=control]::after,:host(:disabled) [part~=control]::after{box-shadow:inset 0 0 0 .0625rem var(--disabled-color)}:host([disabled]) [part="control checked"]::after,:host(:disabled) [part="control checked"]::after{background:var(--disabled-indeterminate-color);box-shadow:none}:host([disabled][indeterminate]) [part~=control]::after,:host(:disabled[indeterminate]) [part~=control]::after{background:var(--disabled-indeterminate-color);box-shadow:none}`;
2
+ export const styles = css `:host ::part(helper-text){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-block-start:max(var(--is-large, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-block-large, var(--ig-spacing-block, var(--ig-spacing))),var(--is-medium, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-block-medium, var(--ig-spacing-block, var(--ig-spacing))),var(--is-small, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-block-small, var(--ig-spacing-block, var(--ig-spacing))));grid-auto-rows:minmax(1.125rem, auto)}[part~=label]{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);transition:none}[part~=indicator]{--indicator-size: 0.6875rem;transition:none}[part~=control]{--size: 1rem;border-radius:var(--border-radius-ripple);transition:all .15s ease-in-out;background:var(--empty-fill-color);transform:translate3d(0, 0, 0)}[part~=control]::after{border-radius:var(--border-radius);width:inherit;height:inherit;min-width:inherit;box-shadow:inset 0 0 0 .0625rem var(--empty-color);transition:all .15s ease-in-out}[part="control checked"]::after{background:var(--fill-color);box-shadow:inset 0 0 0 .0625rem var(--fill-color)}:host(:hover) [part~=control]::after{box-shadow:inset 0 0 0 .0625rem var(--empty-color-hover)}:host(:hover) [part="control checked"]::after{background:var(--fill-color-hover);box-shadow:inset 0 0 0 .0625rem var(--fill-color-hover)}:host(:focus-visible) [part~=control],[part~=focused] [part~=control]{box-shadow:0 0 0 .25rem var(--focus-outline-color)}:host(:focus-visible) [part=control]::after,[part~=focused] [part=control]::after{box-shadow:inset 0 0 0 .0625rem var(--focus-border-color)}:host(:focus-visible):hover [part=control]::after,[part~=focused]:hover [part=control]::after{box-shadow:inset 0 0 0 .0625rem hsl(from var(--focus-border-color) h calc(s * 1.12) calc(l * 0.82))}:host([indeterminate]) [part~=control]::after{background:var(--fill-color);box-shadow:inset 0 0 0 .0625rem var(--fill-color)}:host([indeterminate]) [part~=indicator]{transform:rotate(45deg) translateX(-0.075rem) scale(0.7)}:host(:not([disabled])[indeterminate]:hover) [part~=control]::after{background:var(--fill-color-hover);box-shadow:inset 0 0 0 .0625rem var(--fill-color-hover)}:host(:not([disabled]):state(ig-invalid)) [part~=control]::after,:host(:not(:disabled):state(ig-invalid)) [part~=control]::after{box-shadow:inset 0 0 0 .0625rem var(--error-color);border-color:var(--error-color)}:host(:not([disabled]):state(ig-invalid)) [part="control checked"]::after,:host(:not(:disabled):state(ig-invalid)) [part="control checked"]::after{background:var(--error-color)}:host(:not([disabled]):state(ig-invalid)):focus-visible [part~=control],:host(:not([disabled]):state(ig-invalid)):focus-visible [part="control checked"],:host(:not(:disabled):state(ig-invalid)):focus-visible [part~=control],:host(:not(:disabled):state(ig-invalid)):focus-visible [part="control checked"]{box-shadow:0 0 0 .25rem var(--focus-outline-color-error)}:host(:hover:not([disabled]):state(ig-invalid)) [part~=control]::after,:host(:hover:not([disabled]):state(ig-invalid)) [part="control checked"]::after,:host(:hover:not(:disabled):state(ig-invalid)) [part~=control]::after,:host(:hover:not(:disabled):state(ig-invalid)) [part="control checked"]::after,:host(:hover:not([disabled]):state(ig-invalid)[indeterminate]) [part~=control]::after,:host(:hover:not([disabled]):state(ig-invalid)[indeterminate]) [part="control checked"]::after,:host(:hover:not(:disabled):state(ig-invalid)[indeterminate]) [part~=control]::after,:host(:hover:not(:disabled):state(ig-invalid)[indeterminate]) [part="control checked"]::after{box-shadow:inset 0 0 0 .0625rem var(--error-color-hover)}:host(:hover:not([disabled]):state(ig-invalid)) [part="control checked"]::after,:host(:hover:not(:disabled):state(ig-invalid)) [part="control checked"]::after,:host(:hover:not([disabled]):state(ig-invalid)[indeterminate]) [part="control checked"]::after,:host(:hover:not(:disabled):state(ig-invalid)[indeterminate]) [part="control checked"]::after{background:var(--error-color-hover)}:host(:not([disabled]):state(ig-invalid)[indeterminate]) [part~=control]::after,:host(:not(:disabled):state(ig-invalid)[indeterminate]) [part~=control]::after{background:var(--error-color)}:host(:hover:not([disabled]):state(ig-invalid)[indeterminate]) [part~=control]::after,:host(:hover:not(:disabled):state(ig-invalid)[indeterminate]) [part~=control]::after{background:var(--error-color-hover)}:host(:focus-visible:not([disabled]):state(ig-invalid)) [part~=control],:host(:focus-visible:not(:disabled):state(ig-invalid)) [part~=control],:host(:not([disabled]):state(ig-invalid)) [part~=focused] [part~=control],:host(:not(:disabled):state(ig-invalid)) [part~=focused] [part~=control]{box-shadow:0 0 0 .25rem var(--focus-outline-color-error)}:host([disabled]) [part~=control]::after,:host(:disabled) [part~=control]::after{box-shadow:inset 0 0 0 .0625rem var(--disabled-color)}:host([disabled]) [part="control checked"]::after,:host(:disabled) [part="control checked"]::after{background:var(--disabled-indeterminate-color);box-shadow:none}:host([disabled][indeterminate]) [part~=control]::after,:host(:disabled[indeterminate]) [part~=control]::after{background:var(--disabled-indeterminate-color);box-shadow:none}`;
3
3
  //# sourceMappingURL=checkbox.bootstrap.css.js.map