@cloudflare/realtimekit-ui 1.1.0-staging.4 → 1.1.0-staging.5

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 (376) hide show
  1. package/dist/browser.js +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/realtimekit-ui.cjs.js +1 -1
  4. package/dist/cjs/rtk-ai-transcriptions.cjs.entry.js +1 -1
  5. package/dist/cjs/rtk-audio-grid.cjs.entry.js +1 -1
  6. package/dist/cjs/rtk-audio-visualizer_4.cjs.entry.js +1 -1
  7. package/dist/cjs/rtk-avatar_24.cjs.entry.js +242 -232
  8. package/dist/cjs/rtk-breakout-room-manager_3.cjs.entry.js +4 -4
  9. package/dist/cjs/rtk-breakout-rooms-manager_9.cjs.entry.js +8 -8
  10. package/dist/cjs/rtk-channel-creator.cjs.entry.js +2 -2
  11. package/dist/cjs/rtk-channel-details.cjs.entry.js +1 -1
  12. package/dist/cjs/rtk-channel-selector-ui.cjs.entry.js +2 -2
  13. package/dist/cjs/rtk-chat-message.cjs.entry.js +2 -2
  14. package/dist/cjs/rtk-chat-messages-ui.cjs.entry.js +3 -3
  15. package/dist/cjs/rtk-chat-search-results.cjs.entry.js +1 -1
  16. package/dist/cjs/rtk-chat-toggle.cjs.entry.js +27 -22
  17. package/dist/cjs/rtk-clock.cjs.entry.js +3 -3
  18. package/dist/cjs/rtk-controlbar.cjs.entry.js +1 -1
  19. package/dist/cjs/rtk-debugger-toggle.cjs.entry.js +1 -1
  20. package/dist/cjs/rtk-file-dropzone.cjs.entry.js +1 -1
  21. package/dist/cjs/rtk-file-message_3.cjs.entry.js +8 -8
  22. package/dist/cjs/rtk-header.cjs.entry.js +1 -1
  23. package/dist/cjs/rtk-idle-screen.cjs.entry.js +1 -1
  24. package/dist/cjs/rtk-image-viewer.cjs.entry.js +1 -1
  25. package/dist/cjs/rtk-information-tooltip.cjs.entry.js +1 -1
  26. package/dist/cjs/rtk-leave-button.cjs.entry.js +1 -1
  27. package/dist/cjs/rtk-message-list-view.cjs.entry.js +3 -3
  28. package/dist/cjs/rtk-more-toggle.cjs.entry.js +2 -2
  29. package/dist/cjs/rtk-notification.cjs.entry.js +2 -2
  30. package/dist/cjs/rtk-participant-setup.cjs.entry.js +2 -2
  31. package/dist/cjs/rtk-participant_2.cjs.entry.js +14 -14
  32. package/dist/cjs/rtk-participants-audio.cjs.entry.js +1 -1
  33. package/dist/cjs/rtk-participants-stage-list_4.cjs.entry.js +1 -1
  34. package/dist/cjs/rtk-plugins_2.cjs.entry.js +4 -4
  35. package/dist/cjs/rtk-poll_2.cjs.entry.js +3 -3
  36. package/dist/cjs/rtk-recording-indicator.cjs.entry.js +1 -1
  37. package/dist/cjs/rtk-screenshare-view.cjs.entry.js +5 -5
  38. package/dist/cjs/rtk-settings-toggle.cjs.entry.js +1 -1
  39. package/dist/cjs/rtk-spotlight-grid.cjs.entry.js +2 -2
  40. package/dist/cjs/rtk-stage.cjs.entry.js +1 -1
  41. package/dist/cjs/rtk-transcript.cjs.entry.js +1 -1
  42. package/dist/cjs/rtk-waiting-screen.cjs.entry.js +1 -1
  43. package/dist/collection/components/rtk-ai-transcriptions/rtk-ai-transcriptions.js +1 -1
  44. package/dist/collection/components/rtk-audio-grid/rtk-audio-grid.js +1 -1
  45. package/dist/collection/components/rtk-breakout-room-participants/rtk-breakout-room-participants.js +2 -2
  46. package/dist/collection/components/rtk-broadcast-message-modal/rtk-broadcast-message-modal.js +2 -2
  47. package/dist/collection/components/rtk-channel-creator/rtk-channel-creator.js +2 -2
  48. package/dist/collection/components/rtk-channel-details/rtk-channel-details.js +1 -1
  49. package/dist/collection/components/rtk-channel-selector-ui/rtk-channel-selector-ui.js +2 -2
  50. package/dist/collection/components/rtk-chat-message/rtk-chat-message.js +2 -2
  51. package/dist/collection/components/rtk-chat-messages-ui/rtk-chat-messages-ui.js +3 -3
  52. package/dist/collection/components/rtk-chat-messages-ui-paginated/rtk-chat-messages-ui-paginated.js +1 -1
  53. package/dist/collection/components/rtk-chat-search-results/rtk-chat-search-results.js +1 -1
  54. package/dist/collection/components/rtk-chat-toggle/rtk-chat-toggle.css +1 -1
  55. package/dist/collection/components/rtk-chat-toggle/rtk-chat-toggle.js +27 -26
  56. package/dist/collection/components/rtk-clock/rtk-clock.js +3 -3
  57. package/dist/collection/components/rtk-confirmation-modal/rtk-confirmation-modal.js +1 -1
  58. package/dist/collection/components/rtk-controlbar/rtk-controlbar.js +1 -1
  59. package/dist/collection/components/rtk-counter/rtk-counter.js +2 -2
  60. package/dist/collection/components/rtk-debugger-toggle/rtk-debugger-toggle.js +1 -1
  61. package/dist/collection/components/rtk-draft-attachment-view/rtk-draft-attachment-view.js +1 -1
  62. package/dist/collection/components/rtk-emoji-picker/rtk-emoji-picker.js +1 -1
  63. package/dist/collection/components/rtk-emoji-picker-button/rtk-emoji-picker-button.js +1 -1
  64. package/dist/collection/components/rtk-file-dropzone/rtk-file-dropzone.js +1 -1
  65. package/dist/collection/components/rtk-file-message/rtk-file-message.js +2 -2
  66. package/dist/collection/components/rtk-file-message-view/rtk-file-message-view.js +1 -1
  67. package/dist/collection/components/rtk-file-picker-button/rtk-file-picker-button.js +1 -1
  68. package/dist/collection/components/rtk-header/rtk-header.js +1 -1
  69. package/dist/collection/components/rtk-idle-screen/rtk-idle-screen.js +1 -1
  70. package/dist/collection/components/rtk-image-message/rtk-image-message.js +4 -4
  71. package/dist/collection/components/rtk-image-message-view/rtk-image-message-view.js +3 -3
  72. package/dist/collection/components/rtk-image-viewer/rtk-image-viewer.js +1 -1
  73. package/dist/collection/components/rtk-information-tooltip/rtk-information-tooltip.js +1 -1
  74. package/dist/collection/components/rtk-leave-button/rtk-leave-button.js +1 -1
  75. package/dist/collection/components/rtk-leave-meeting/rtk-leave-meeting.js +2 -2
  76. package/dist/collection/components/rtk-markdown-view/rtk-markdown-view.js +1 -1
  77. package/dist/collection/components/rtk-menu/rtk-menu.js +2 -2
  78. package/dist/collection/components/rtk-menu-item/rtk-menu-item.js +1 -1
  79. package/dist/collection/components/rtk-menu-list/rtk-menu-list.js +1 -1
  80. package/dist/collection/components/rtk-message-list-view/rtk-message-list-view.js +3 -3
  81. package/dist/collection/components/rtk-more-toggle/rtk-more-toggle.js +2 -2
  82. package/dist/collection/components/rtk-mute-all-confirmation/rtk-mute-all-confirmation.js +1 -1
  83. package/dist/collection/components/rtk-notification/rtk-notification.js +2 -2
  84. package/dist/collection/components/rtk-overlay-modal/rtk-overlay-modal.js +1 -1
  85. package/dist/collection/components/rtk-paginated-list/rtk-paginated-list.css +5 -5
  86. package/dist/collection/components/rtk-paginated-list/rtk-paginated-list.js +272 -256
  87. package/dist/collection/components/rtk-participant/rtk-participant.js +12 -12
  88. package/dist/collection/components/rtk-participant-setup/rtk-participant-setup.js +2 -2
  89. package/dist/collection/components/rtk-participants-audio/rtk-participants-audio.js +1 -1
  90. package/dist/collection/components/rtk-participants-stage-list/rtk-participants-stage-list.js +1 -1
  91. package/dist/collection/components/rtk-permissions-message/rtk-permissions-message.js +1 -1
  92. package/dist/collection/components/rtk-plugins/rtk-plugins.js +1 -1
  93. package/dist/collection/components/rtk-poll/rtk-poll.js +1 -1
  94. package/dist/collection/components/rtk-poll-form/rtk-poll-form.js +2 -2
  95. package/dist/collection/components/rtk-polls/rtk-polls.js +3 -3
  96. package/dist/collection/components/rtk-recording-indicator/rtk-recording-indicator.js +1 -1
  97. package/dist/collection/components/rtk-screenshare-view/rtk-screenshare-view.js +5 -5
  98. package/dist/collection/components/rtk-settings-toggle/rtk-settings-toggle.js +1 -1
  99. package/dist/collection/components/rtk-spinner/rtk-spinner.js +1 -1
  100. package/dist/collection/components/rtk-spotlight-grid/rtk-spotlight-grid.js +2 -2
  101. package/dist/collection/components/rtk-stage/rtk-stage.js +1 -1
  102. package/dist/collection/components/rtk-switch/rtk-switch.js +1 -1
  103. package/dist/collection/components/rtk-text-composer-view/rtk-text-composer-view.js +1 -1
  104. package/dist/collection/components/rtk-text-message/rtk-text-message.js +2 -2
  105. package/dist/collection/components/rtk-text-message-view/rtk-text-message-view.js +1 -1
  106. package/dist/collection/components/rtk-tooltip/rtk-tooltip.js +1 -1
  107. package/dist/collection/components/rtk-transcript/rtk-transcript.js +1 -1
  108. package/dist/collection/components/rtk-virtualized-list/rtk-virtualized-participant-list.js +2 -2
  109. package/dist/collection/components/rtk-waiting-screen/rtk-waiting-screen.js +1 -1
  110. package/dist/components/{p-8479343e.js → p-00bb4abb.js} +6 -6
  111. package/dist/components/{p-12ae623e.js → p-02b840f8.js} +3 -3
  112. package/dist/components/{p-20290ade.js → p-0b2b3442.js} +2 -2
  113. package/dist/components/p-0d472019.js +362 -0
  114. package/dist/components/{p-b74221b4.js → p-0e5cc539.js} +2 -2
  115. package/dist/components/{p-7b344a65.js → p-0f2de0f8.js} +5 -5
  116. package/dist/components/{p-b30f3c49.js → p-107e55c1.js} +1 -1
  117. package/dist/components/{p-7965a1a6.js → p-1a9e3806.js} +1 -1
  118. package/dist/components/{p-e31889d3.js → p-1f5a4682.js} +2 -2
  119. package/dist/components/{p-b9b8697d.js → p-2309fb19.js} +2 -2
  120. package/dist/components/{p-95e51bef.js → p-241a8245.js} +1 -1
  121. package/dist/components/{p-402db72e.js → p-2447a26f.js} +2 -2
  122. package/dist/components/{p-4a84c913.js → p-28170a8d.js} +9 -9
  123. package/dist/components/{p-86f18b68.js → p-294cda89.js} +3 -3
  124. package/dist/components/{p-cd790a43.js → p-2a65883d.js} +1 -1
  125. package/dist/components/{p-9936031d.js → p-32c6e86d.js} +20 -20
  126. package/dist/components/{p-020800ee.js → p-39e8b34a.js} +1 -1
  127. package/dist/components/{p-8f381eef.js → p-3e58e0f3.js} +1 -1
  128. package/dist/components/{p-c8583d9b.js → p-43d6a221.js} +2 -2
  129. package/dist/components/{p-828db489.js → p-45220ce9.js} +2 -2
  130. package/dist/components/{p-011adf66.js → p-46d99dd9.js} +2 -2
  131. package/dist/components/{p-578d73e5.js → p-48acb953.js} +1 -1
  132. package/dist/components/{p-89cfd513.js → p-4902c5cf.js} +1 -1
  133. package/dist/components/{p-40589702.js → p-4aede34c.js} +1 -1
  134. package/dist/components/{p-0e80bae4.js → p-4e5a54c2.js} +10 -10
  135. package/dist/components/{p-5b66b8f3.js → p-4ebf9684.js} +1 -1
  136. package/dist/components/{p-28d51137.js → p-540d8eb9.js} +1 -1
  137. package/dist/components/{p-4bfb4f60.js → p-5476e3f3.js} +2 -2
  138. package/dist/components/{p-40b1fef2.js → p-5669b6e7.js} +4 -4
  139. package/dist/components/{p-9d40e041.js → p-598dc3f2.js} +2 -2
  140. package/dist/components/{p-ea6b5bf5.js → p-616ae7ab.js} +2 -2
  141. package/dist/components/{p-9c3ca56e.js → p-6739a399.js} +2 -2
  142. package/dist/components/{p-597543af.js → p-713c7ed7.js} +3 -3
  143. package/dist/components/{p-966273a8.js → p-7148ec6a.js} +1 -1
  144. package/dist/components/{p-ce77fdfc.js → p-761c0e78.js} +1 -1
  145. package/dist/components/{p-a0a0867a.js → p-7f489600.js} +1 -1
  146. package/dist/components/{p-520dccab.js → p-819cb785.js} +1 -1
  147. package/dist/components/{p-2e3c0084.js → p-89025409.js} +3 -3
  148. package/dist/components/{p-bed61d79.js → p-8cfdac0d.js} +5 -5
  149. package/dist/components/{p-757856f4.js → p-8d6b21d5.js} +3 -3
  150. package/dist/components/{p-35af8a84.js → p-a25f3aca.js} +2 -2
  151. package/dist/components/{p-5f0f8967.js → p-a51db0d6.js} +16 -16
  152. package/dist/components/{p-c544502e.js → p-a73665b4.js} +4 -4
  153. package/dist/components/{p-b3447e0c.js → p-a8a6496d.js} +1 -1
  154. package/dist/components/{p-53332481.js → p-ae376177.js} +12 -12
  155. package/dist/components/{p-5739b5f1.js → p-af3b99f4.js} +2 -2
  156. package/dist/components/{p-11a16ac3.js → p-bb4983b8.js} +2 -2
  157. package/dist/components/{p-3a1dbc0d.js → p-c334f0e5.js} +2 -2
  158. package/dist/components/{p-d2ce1170.js → p-cf8f725b.js} +1 -1
  159. package/dist/components/{p-157c1dc9.js → p-d765dbe4.js} +6 -6
  160. package/dist/components/{p-2eb35b99.js → p-da9018ea.js} +6 -6
  161. package/dist/components/{p-0ca31fce.js → p-dc3143c0.js} +2 -2
  162. package/dist/components/{p-ab842e10.js → p-e0510925.js} +1 -1
  163. package/dist/components/{p-09d1805e.js → p-eeb37b16.js} +1 -1
  164. package/dist/components/{p-d3588666.js → p-fa476519.js} +5 -5
  165. package/dist/components/{p-85990be7.js → p-fb836f65.js} +1 -1
  166. package/dist/components/{p-668f57d0.js → p-fb900e8f.js} +2 -2
  167. package/dist/components/rtk-ai-toggle.js +2 -2
  168. package/dist/components/rtk-ai-transcriptions.js +1 -1
  169. package/dist/components/rtk-ai.js +1 -1
  170. package/dist/components/rtk-audio-grid.js +1 -1
  171. package/dist/components/rtk-audio-tile.js +2 -2
  172. package/dist/components/rtk-avatar.js +1 -1
  173. package/dist/components/rtk-breakout-room-manager.js +1 -1
  174. package/dist/components/rtk-breakout-room-participants.js +1 -1
  175. package/dist/components/rtk-breakout-rooms-manager.js +1 -1
  176. package/dist/components/rtk-breakout-rooms-toggle.js +2 -2
  177. package/dist/components/rtk-broadcast-message-modal.js +1 -1
  178. package/dist/components/rtk-camera-toggle.js +3 -3
  179. package/dist/components/rtk-caption-toggle.js +2 -2
  180. package/dist/components/rtk-channel-creator.js +4 -4
  181. package/dist/components/rtk-channel-details.js +1 -1
  182. package/dist/components/rtk-channel-header.js +4 -4
  183. package/dist/components/rtk-channel-selector-ui.js +4 -4
  184. package/dist/components/rtk-channel-selector-view.js +1 -1
  185. package/dist/components/rtk-chat-composer-ui.js +4 -4
  186. package/dist/components/rtk-chat-composer-view.js +1 -1
  187. package/dist/components/rtk-chat-message.js +1 -1
  188. package/dist/components/rtk-chat-messages-ui-paginated.js +1 -1
  189. package/dist/components/rtk-chat-messages-ui.js +14 -14
  190. package/dist/components/rtk-chat-search-results.js +11 -11
  191. package/dist/components/rtk-chat-toggle.js +30 -26
  192. package/dist/components/rtk-chat.js +1 -1
  193. package/dist/components/rtk-clock.js +3 -3
  194. package/dist/components/rtk-confirmation-modal.js +1 -1
  195. package/dist/components/rtk-controlbar-button.js +1 -1
  196. package/dist/components/rtk-controlbar.js +1 -1
  197. package/dist/components/rtk-counter.js +1 -1
  198. package/dist/components/rtk-debugger-toggle.js +3 -3
  199. package/dist/components/rtk-dialog-manager.js +13 -13
  200. package/dist/components/rtk-draft-attachment-view.js +1 -1
  201. package/dist/components/rtk-emoji-picker-button.js +1 -1
  202. package/dist/components/rtk-emoji-picker.js +1 -1
  203. package/dist/components/rtk-file-dropzone.js +1 -1
  204. package/dist/components/rtk-file-message-view.js +1 -1
  205. package/dist/components/rtk-file-message.js +1 -1
  206. package/dist/components/rtk-file-picker-button.js +1 -1
  207. package/dist/components/rtk-fullscreen-toggle.js +1 -1
  208. package/dist/components/rtk-grid-pagination.js +1 -1
  209. package/dist/components/rtk-grid.js +4 -4
  210. package/dist/components/rtk-header.js +1 -1
  211. package/dist/components/rtk-idle-screen.js +2 -2
  212. package/dist/components/rtk-image-message-view.js +1 -1
  213. package/dist/components/rtk-image-message.js +1 -1
  214. package/dist/components/rtk-image-viewer.js +1 -1
  215. package/dist/components/rtk-information-tooltip.js +1 -1
  216. package/dist/components/rtk-leave-button.js +3 -3
  217. package/dist/components/rtk-leave-meeting.js +1 -1
  218. package/dist/components/rtk-livestream-player.js +1 -1
  219. package/dist/components/rtk-livestream-toggle.js +2 -2
  220. package/dist/components/rtk-markdown-view.js +1 -1
  221. package/dist/components/rtk-meeting-title.js +1 -1
  222. package/dist/components/rtk-meeting.js +21 -21
  223. package/dist/components/rtk-menu-item.js +1 -1
  224. package/dist/components/rtk-menu-list.js +1 -1
  225. package/dist/components/rtk-menu.js +1 -1
  226. package/dist/components/rtk-message-list-view.js +4 -4
  227. package/dist/components/rtk-message-view.js +1 -1
  228. package/dist/components/rtk-mic-toggle.js +3 -3
  229. package/dist/components/rtk-mixed-grid.js +3 -3
  230. package/dist/components/rtk-more-toggle.js +4 -4
  231. package/dist/components/rtk-mute-all-button.js +3 -3
  232. package/dist/components/rtk-mute-all-confirmation.js +1 -1
  233. package/dist/components/rtk-notification.js +1 -1
  234. package/dist/components/rtk-notifications.js +1 -1
  235. package/dist/components/rtk-overlay-modal.js +1 -1
  236. package/dist/components/rtk-paginated-list.js +1 -1
  237. package/dist/components/rtk-participant-setup.js +2 -2
  238. package/dist/components/rtk-participant.js +1 -1
  239. package/dist/components/rtk-participants-audio.js +1 -1
  240. package/dist/components/rtk-participants-stage-list.js +1 -1
  241. package/dist/components/rtk-participants-stage-queue.js +1 -1
  242. package/dist/components/rtk-participants-toggle.js +2 -2
  243. package/dist/components/rtk-participants-viewer-list.js +1 -1
  244. package/dist/components/rtk-participants-waiting-list.js +1 -1
  245. package/dist/components/rtk-participants.js +11 -11
  246. package/dist/components/rtk-permissions-message.js +1 -1
  247. package/dist/components/rtk-pip-toggle.js +2 -2
  248. package/dist/components/rtk-plugins-toggle.js +2 -2
  249. package/dist/components/rtk-plugins.js +1 -1
  250. package/dist/components/rtk-poll-form.js +1 -1
  251. package/dist/components/rtk-poll.js +1 -1
  252. package/dist/components/rtk-polls-toggle.js +2 -2
  253. package/dist/components/rtk-polls.js +1 -1
  254. package/dist/components/rtk-recording-indicator.js +1 -1
  255. package/dist/components/rtk-recording-toggle.js +2 -2
  256. package/dist/components/rtk-screen-share-toggle.js +3 -3
  257. package/dist/components/rtk-screenshare-view.js +6 -6
  258. package/dist/components/rtk-settings-audio.js +1 -1
  259. package/dist/components/rtk-settings-toggle.js +3 -3
  260. package/dist/components/rtk-settings-video.js +1 -1
  261. package/dist/components/rtk-settings.js +3 -3
  262. package/dist/components/rtk-setup-screen.js +1 -1
  263. package/dist/components/rtk-sidebar.js +5 -5
  264. package/dist/components/rtk-spinner.js +1 -1
  265. package/dist/components/rtk-spotlight-grid.js +2 -2
  266. package/dist/components/rtk-spotlight-indicator.js +1 -1
  267. package/dist/components/rtk-stage-toggle.js +3 -3
  268. package/dist/components/rtk-stage.js +1 -1
  269. package/dist/components/rtk-switch.js +1 -1
  270. package/dist/components/rtk-tab-bar.js +1 -1
  271. package/dist/components/rtk-text-composer-view.js +1 -1
  272. package/dist/components/rtk-text-message-view.js +1 -1
  273. package/dist/components/rtk-text-message.js +1 -1
  274. package/dist/components/rtk-tooltip.js +1 -1
  275. package/dist/components/rtk-transcript.js +1 -1
  276. package/dist/components/rtk-transcripts.js +1 -1
  277. package/dist/components/rtk-virtualized-participant-list.js +1 -1
  278. package/dist/components/rtk-waiting-screen.js +1 -1
  279. package/dist/docs/docs-components.json +44 -33
  280. package/dist/esm/loader.js +370 -354
  281. package/dist/esm/realtimekit-ui.js +1 -1
  282. package/dist/esm/rtk-ai-transcriptions.entry.js +1 -1
  283. package/dist/esm/rtk-audio-grid.entry.js +1 -1
  284. package/dist/esm/rtk-audio-visualizer_4.entry.js +1 -1
  285. package/dist/esm/rtk-avatar_24.entry.js +242 -232
  286. package/dist/esm/rtk-breakout-room-manager_3.entry.js +4 -4
  287. package/dist/esm/rtk-breakout-rooms-manager_9.entry.js +8 -8
  288. package/dist/esm/rtk-channel-creator.entry.js +2 -2
  289. package/dist/esm/rtk-channel-details.entry.js +1 -1
  290. package/dist/esm/rtk-channel-selector-ui.entry.js +2 -2
  291. package/dist/esm/rtk-chat-message.entry.js +2 -2
  292. package/dist/esm/rtk-chat-messages-ui.entry.js +3 -3
  293. package/dist/esm/rtk-chat-search-results.entry.js +1 -1
  294. package/dist/esm/rtk-chat-toggle.entry.js +27 -22
  295. package/dist/esm/rtk-clock.entry.js +3 -3
  296. package/dist/esm/rtk-controlbar.entry.js +1 -1
  297. package/dist/esm/rtk-debugger-toggle.entry.js +1 -1
  298. package/dist/esm/rtk-file-dropzone.entry.js +1 -1
  299. package/dist/esm/rtk-file-message_3.entry.js +8 -8
  300. package/dist/esm/rtk-header.entry.js +1 -1
  301. package/dist/esm/rtk-idle-screen.entry.js +1 -1
  302. package/dist/esm/rtk-image-viewer.entry.js +1 -1
  303. package/dist/esm/rtk-information-tooltip.entry.js +1 -1
  304. package/dist/esm/rtk-leave-button.entry.js +1 -1
  305. package/dist/esm/rtk-message-list-view.entry.js +3 -3
  306. package/dist/esm/rtk-more-toggle.entry.js +2 -2
  307. package/dist/esm/rtk-notification.entry.js +2 -2
  308. package/dist/esm/rtk-participant-setup.entry.js +2 -2
  309. package/dist/esm/rtk-participant_2.entry.js +14 -14
  310. package/dist/esm/rtk-participants-audio.entry.js +1 -1
  311. package/dist/esm/rtk-participants-stage-list_4.entry.js +1 -1
  312. package/dist/esm/rtk-plugins_2.entry.js +4 -4
  313. package/dist/esm/rtk-poll_2.entry.js +3 -3
  314. package/dist/esm/rtk-recording-indicator.entry.js +1 -1
  315. package/dist/esm/rtk-screenshare-view.entry.js +5 -5
  316. package/dist/esm/rtk-settings-toggle.entry.js +1 -1
  317. package/dist/esm/rtk-spotlight-grid.entry.js +2 -2
  318. package/dist/esm/rtk-stage.entry.js +1 -1
  319. package/dist/esm/rtk-transcript.entry.js +1 -1
  320. package/dist/esm/rtk-waiting-screen.entry.js +1 -1
  321. package/dist/realtimekit-ui/{p-7660a4c1.entry.js → p-00445029.entry.js} +1 -1
  322. package/dist/realtimekit-ui/{p-bb369808.entry.js → p-02c6b025.entry.js} +1 -1
  323. package/dist/realtimekit-ui/{p-0fed7daa.entry.js → p-0baa78d7.entry.js} +1 -1
  324. package/dist/realtimekit-ui/{p-0e2d6b1b.entry.js → p-1fe6003b.entry.js} +1 -1
  325. package/dist/realtimekit-ui/p-21d4bb9c.entry.js +1 -0
  326. package/dist/realtimekit-ui/{p-87f3b9a6.entry.js → p-2441260e.entry.js} +1 -1
  327. package/dist/realtimekit-ui/{p-4822dc9f.entry.js → p-322957ed.entry.js} +1 -1
  328. package/dist/realtimekit-ui/{p-f42c50db.entry.js → p-323d1aa4.entry.js} +1 -1
  329. package/dist/realtimekit-ui/{p-39410e81.entry.js → p-44d69c6b.entry.js} +1 -1
  330. package/dist/realtimekit-ui/p-48c87789.entry.js +1 -0
  331. package/dist/realtimekit-ui/{p-cea6c6ac.entry.js → p-53680d55.entry.js} +1 -1
  332. package/dist/realtimekit-ui/p-54a88fdf.entry.js +1 -0
  333. package/dist/realtimekit-ui/{p-9cab7a57.entry.js → p-5892c1e0.entry.js} +1 -1
  334. package/dist/realtimekit-ui/{p-73f489be.entry.js → p-612a8d25.entry.js} +1 -1
  335. package/dist/realtimekit-ui/p-64206b62.entry.js +1 -0
  336. package/dist/realtimekit-ui/{p-a62e84f9.entry.js → p-67ead213.entry.js} +1 -1
  337. package/dist/realtimekit-ui/{p-f2ce302b.entry.js → p-6896e819.entry.js} +1 -1
  338. package/dist/realtimekit-ui/{p-fea05f1c.entry.js → p-7a9a226e.entry.js} +1 -1
  339. package/dist/realtimekit-ui/{p-9cad5a6d.entry.js → p-80e51a73.entry.js} +1 -1
  340. package/dist/realtimekit-ui/p-820dad23.entry.js +1 -0
  341. package/dist/realtimekit-ui/p-83db4de1.entry.js +1 -0
  342. package/dist/realtimekit-ui/{p-61d3e2d4.entry.js → p-85b3c0c4.entry.js} +1 -1
  343. package/dist/realtimekit-ui/{p-0c071f00.entry.js → p-8778b3e6.entry.js} +1 -1
  344. package/dist/realtimekit-ui/p-a1408db4.entry.js +1 -0
  345. package/dist/realtimekit-ui/{p-c50f4cab.entry.js → p-a67e2a25.entry.js} +1 -1
  346. package/dist/realtimekit-ui/{p-3e12d77a.entry.js → p-a680da64.entry.js} +1 -1
  347. package/dist/realtimekit-ui/{p-bd226f59.entry.js → p-a7172c2d.entry.js} +1 -1
  348. package/dist/realtimekit-ui/{p-cda80e2c.entry.js → p-a852e0cf.entry.js} +1 -1
  349. package/dist/realtimekit-ui/{p-9dcd9e30.entry.js → p-ac6c8ebe.entry.js} +1 -1
  350. package/dist/realtimekit-ui/{p-1dfe0269.entry.js → p-b25f7d7b.entry.js} +1 -1
  351. package/dist/realtimekit-ui/{p-2c71cc53.entry.js → p-b51e813e.entry.js} +1 -1
  352. package/dist/realtimekit-ui/{p-dded6ad0.entry.js → p-be5bdd0a.entry.js} +1 -1
  353. package/dist/realtimekit-ui/p-c5f704a3.entry.js +1 -0
  354. package/dist/realtimekit-ui/{p-d7a78f65.entry.js → p-cc226b51.entry.js} +1 -1
  355. package/dist/realtimekit-ui/{p-a25bb0ad.entry.js → p-cda276d6.entry.js} +1 -1
  356. package/dist/realtimekit-ui/p-d880fb69.entry.js +1 -0
  357. package/dist/realtimekit-ui/p-f457ae6f.entry.js +1 -0
  358. package/dist/realtimekit-ui/{p-a867b984.entry.js → p-f6c82f1b.entry.js} +1 -1
  359. package/dist/realtimekit-ui/p-fa86682c.entry.js +1 -0
  360. package/dist/realtimekit-ui/realtimekit-ui.esm.js +1 -1
  361. package/dist/types/components/rtk-chat-toggle/rtk-chat-toggle.d.ts +4 -6
  362. package/dist/types/components/rtk-paginated-list/rtk-paginated-list.d.ts +68 -53
  363. package/dist/types/components.d.ts +9 -5
  364. package/package.json +1 -1
  365. package/dist/components/p-78f91ffe.js +0 -357
  366. package/dist/realtimekit-ui/p-02889d02.entry.js +0 -1
  367. package/dist/realtimekit-ui/p-09fb29e7.entry.js +0 -1
  368. package/dist/realtimekit-ui/p-260fc2ed.entry.js +0 -1
  369. package/dist/realtimekit-ui/p-32211408.entry.js +0 -1
  370. package/dist/realtimekit-ui/p-48c76360.entry.js +0 -1
  371. package/dist/realtimekit-ui/p-4d31d165.entry.js +0 -1
  372. package/dist/realtimekit-ui/p-51c72bc8.entry.js +0 -1
  373. package/dist/realtimekit-ui/p-b58dc07c.entry.js +0 -1
  374. package/dist/realtimekit-ui/p-c96e2a96.entry.js +0 -1
  375. package/dist/realtimekit-ui/p-d194317d.entry.js +0 -1
  376. package/dist/realtimekit-ui/p-ff9bc5b0.entry.js +0 -1
@@ -11,7 +11,6 @@ import { g as generateConfig } from './config-325caca3.js';
11
11
  import { i as index } from './ResizeObserver.es-02979d4e.js';
12
12
  import { c as computePosition, o as offset, f as flip, s as shift, a as arrow } from './floating-ui.dom.esm-21c3d54e.js';
13
13
  import { f as formatDateTime, e as elapsedDuration } from './date-b1f78dea.js';
14
- import { s as smoothScrollToBottom } from './scroll-2d8e810c.js';
15
14
 
16
15
  const rtkAvatarCss = ":host{line-height:initial;font-family:var(--rtk-font-family, sans-serif);font-feature-settings:normal;font-variation-settings:normal}p{margin:var(--rtk-space-0, 0px);padding:var(--rtk-space-0, 0px)}:host{display:flex;height:var(--rtk-space-32, 128px);width:var(--rtk-space-32, 128px);align-items:center;justify-content:center;font-size:28px;--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-on-brand-1000, var(--rtk-colors-text-1000, 255 255 255)));overflow:clip;border-radius:9999px;-webkit-user-select:none;-moz-user-select:none;user-select:none}rtk-icon{height:50%;width:50%}.image-ctr{display:flex;height:100%;width:100%;align-items:center;justify-content:center;--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-700, 44 44 44) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-600, 255 255 255 / 0.52))}img{height:var(--rtk-space-0, 0px);width:var(--rtk-space-0, 0px);-o-object-fit:cover;object-fit:cover}img.loaded{height:100%;width:100%}.initials{display:flex;height:100%;width:100%;align-items:center;justify-content:center;text-transform:uppercase}.image{display:flex;height:100%;width:100%;align-items:center;justify-content:center}.image img{display:none;height:100%;width:100%;-o-object-fit:cover;object-fit:cover}.image img.loaded{display:block}:host([variant='hexagon']){border-radius:var(--rtk-border-radius-none, 0);clip-path:polygon(50% 0, 95% 25%, 95% 75%, 50% 100%, 5% 75%, 5% 25%)}:host([variant='square']){border-radius:var(--rtk-border-radius-none, 0);clip-path:polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)}:host([size='sm']){height:var(--rtk-space-14, 56px);width:var(--rtk-space-14, 56px);font-size:12px}:host([size='md']){height:var(--rtk-space-28, 112px);width:var(--rtk-space-28, 112px)}:host([size='lg']){height:var(--rtk-space-32, 128px);width:var(--rtk-space-32, 128px)}";
17
16
  const RtkAvatarStyle0 = rtkAvatarCss;
@@ -1093,7 +1092,7 @@ const RtkChatMessagesUiPaginated = class {
1093
1092
  this.lastReadMessageIndex = -1;
1094
1093
  }
1095
1094
  render() {
1096
- return (h(Host, { key: 'dbe69aec6f462c8cfa5d6574ad77efdbadd641b9' }, h("rtk-paginated-list", { key: 'b6b525ad58e8173a78577265f2cde2981ca015cf', ref: (el) => (this.$paginatedListRef = el), pageSize: this.pageSize, pagesAllowed: 3, fetchData: this.getChatMessages, createNodes: this.createChatNodes, selectedItemId: this.selectedChannelId, emptyListLabel: this.t('chat.empty_channel') }, h("slot", { key: '4045a3fccefe09d76edff35b5d0183a89db51491' }))));
1095
+ return (h(Host, { key: '012b7189dfbdccfd8017cc9023263e6a7e9afd44' }, h("rtk-paginated-list", { key: '0ea37ee880fda0acdd7460b6da5f03e11ac304bf', ref: (el) => (this.$paginatedListRef = el), pageSize: this.pageSize, pagesAllowed: 3, fetchData: this.getChatMessages, createNodes: this.createChatNodes, selectedItemId: this.selectedChannelId, emptyListLabel: this.t('chat.empty_channel') }, h("slot", { key: '53cb197b6d9319f470e87fe73d7ca0d158778e3f' }))));
1097
1096
  }
1098
1097
  get host() { return getElement(this); }
1099
1098
  static get watchers() { return {
@@ -1166,7 +1165,7 @@ const RtkDraftAttachmentView = class {
1166
1165
  this.onAttachmentChange();
1167
1166
  }
1168
1167
  render() {
1169
- return (h(Host, { key: '4ccd7a73401d3931dadc59779ec4edfddef219f1' }, h("div", { key: 'a75fa81f358436f6ac349a56b8a62671a25f38d7', class: "preview-overlay" }, h("div", { key: 'b95e371e0108cf613305f74c204ebb8fec26140d', class: "preview" }, h("rtk-tooltip", { key: '9c43de18dbdcff2d5cd6fdd344a13cd0d1e7c2f8', label: this.t('chat.cancel_upload') }, h("rtk-button", { key: 'e99f168f015abc65b33876e44d3a2d80f6fa6169', variant: "secondary", kind: "icon", onClick: this.onDeleteClickHandler }, h("rtk-icon", { key: '53f0ffd566825e8cb3d7a7b69c93a62c63206505', icon: this.iconPack.dismiss }))), this.attachment.type === 'image' ? (h("img", { class: "preview-image", src: this.filePreview })) : (h("div", { class: "preview-file" }, h("span", null, this.filePreview)))))));
1168
+ return (h(Host, { key: 'f6ede093bcdf8100807baab4de2a296fc4960a07' }, h("div", { key: 'b19bbe9b2ea58ea4adccc2028a1b24ea6bc9f0a9', class: "preview-overlay" }, h("div", { key: 'cbb2bfcb3a50e6e7fbfd4109eb340ba51d6a162d', class: "preview" }, h("rtk-tooltip", { key: '15b50c547470b0fa22014e0992a1c7e26b234573', label: this.t('chat.cancel_upload') }, h("rtk-button", { key: '940332a51747af3368ffec497d5ef76fa64ecf75', variant: "secondary", kind: "icon", onClick: this.onDeleteClickHandler }, h("rtk-icon", { key: 'cc04b0ac70753e970ff638f187ad5f702dc3656b', icon: this.iconPack.dismiss }))), this.attachment.type === 'image' ? (h("img", { class: "preview-image", src: this.filePreview })) : (h("div", { class: "preview-file" }, h("span", null, this.filePreview)))))));
1170
1169
  }
1171
1170
  static get watchers() { return {
1172
1171
  "attachment": ["onAttachmentChange"]
@@ -1251,7 +1250,7 @@ const RtkEmojiPicker = class {
1251
1250
  return (h("div", { id: "emoji-grid", class: "scrollbar max-w-40" }, this.filteredEmojis.map((e) => (h("rtk-button", { key: `emoji-button-${e.name}`, class: "emoji", variant: "ghost", kind: "icon", title: e.name, onClick: () => this.handleEmojiClick(e.emoji) }, e.emoji)))));
1252
1251
  }
1253
1252
  render() {
1254
- return (h(Host, { key: 'f448ab61063b55b8e5572fbcb8be3f520b0704ea' }, h("div", { key: '459b42557c8e7b853410b53e42dd663461b0593a', class: 'close-parent' }, h("rtk-button", { key: '8b64136b51a96bda767b7fbbc05b51a335d1a7b9', variant: "ghost", kind: "icon", class: "close", onClick: () => { var _a; return (_a = this.pickerClose) === null || _a === void 0 ? void 0 : _a.emit(); }, "aria-label": this.t('close') }, h("rtk-icon", { key: '82bdc4ea24be656d182c9e420bd86b0b5cbfa589', icon: this.iconPack.dismiss }))), h("div", { key: '934d08102c4cffda109752eecd5be41854030133', class: 'emoji-parent' }, h("input", { key: '8c21c91a89d77fce9847ade88663d9ec969491da', value: this.filterVal, onInput: (event) => this.handleInputChange(event.target), placeholder: this.t('search'), ref: (el) => (this.inputElement = el) }), this.mapEmojiList())));
1253
+ return (h(Host, { key: '6581d26d75a7b869d0ba00243ec74ee06b927e7d' }, h("div", { key: '3705d8c557ac3e05769171998e9176e7e40a232c', class: 'close-parent' }, h("rtk-button", { key: 'b437e579cb828a709de255ddfa6b751e4bdfbe51', variant: "ghost", kind: "icon", class: "close", onClick: () => { var _a; return (_a = this.pickerClose) === null || _a === void 0 ? void 0 : _a.emit(); }, "aria-label": this.t('close') }, h("rtk-icon", { key: '7fac79a21c6be57156d17ceeff9ceb2834bbf709', icon: this.iconPack.dismiss }))), h("div", { key: '46cb2af6654ef36b7258baf47e3cd9e5bd60bf89', class: 'emoji-parent' }, h("input", { key: 'cfde33638d531f9bac1b1bf25d966a369f4dfb38', value: this.filterVal, onInput: (event) => this.handleInputChange(event.target), placeholder: this.t('search'), ref: (el) => (this.inputElement = el) }), this.mapEmojiList())));
1255
1254
  }
1256
1255
  };
1257
1256
  __decorate$b([
@@ -1284,7 +1283,7 @@ const RtkEmojiPickerButton = class {
1284
1283
  this.t = useLanguage();
1285
1284
  }
1286
1285
  render() {
1287
- return (h("rtk-tooltip", { key: '45792cf2e2523dc94b5dd4c861d4006fae8aee56', label: this.t('chat.send_emoji') }, h("rtk-button", { key: 'd2f80aede59b62d7e0587515f4823bdb5e278c28', variant: "ghost", kind: "icon", class: { active: this.isActive }, title: this.t('chat.send_emoji') }, h("rtk-icon", { key: '15229de453f1cbf93c8de5c002d6ea33ff54ed3b', icon: this.iconPack.emoji_multiple }))));
1286
+ return (h("rtk-tooltip", { key: '45ef1f18da6d1ecc3c02882590cd22e930461562', label: this.t('chat.send_emoji') }, h("rtk-button", { key: '6504abab2f1c6537443699c53a8cbdcf13530cba', variant: "ghost", kind: "icon", class: { active: this.isActive }, title: this.t('chat.send_emoji') }, h("rtk-icon", { key: 'd730c81abce72d9c3226f1f666941e1136bee77f', icon: this.iconPack.emoji_multiple }))));
1288
1287
  }
1289
1288
  };
1290
1289
  __decorate$a([
@@ -1315,7 +1314,7 @@ const RtkFileMessageView = class {
1315
1314
  this.iconPack = defaultIconPack;
1316
1315
  }
1317
1316
  render() {
1318
- return (h("div", { key: 'f25ec20ac84c7ec0961abbdc58d74b64b3261042', class: "file" }, h("rtk-button", { key: '9daa2ca8992821456f7dad66550c1f3b0e07e5c2', variant: "secondary", kind: "icon", onClick: () => downloadFile(sanitizeLink(this.url), { name: this.name, fallbackName: 'file' }), part: "button" }, h("rtk-icon", { key: 'f4a578a8613eab5a2b91a86870ee02ff2659c4ec', icon: this.iconPack.download })), h("div", { key: '61d6a100bd716741e15f80404796ad8e5850d2a3', class: "file-data" }, h("div", { key: 'be8f7fdf168388073e5f094cb717d75766b291df', class: "name" }, this.name), h("div", { key: 'f1dbb45817084612a31baf71784d713ec85a3b79', class: "file-data-split" }, h("div", { key: '49ac2abd19ae9fb07da0a4f234c45b932cd41221', class: "ext" }, getExtension(this.name)), h("span", { key: 'fe7e8660a54184ffc3d5cff5a320a1f8929ec3e6', class: "divider" }), h("div", { key: '402df689a8cf059bd3031c9c036544c486846d40', class: "size" }, getFileSize(this.size))))));
1317
+ return (h("div", { key: '5cc29b4780f581a2f8b045e5051bcc66f3fdaf55', class: "file" }, h("rtk-button", { key: '4100b47bc1d72f08ec5fe645291bfbb58e3a6486', variant: "secondary", kind: "icon", onClick: () => downloadFile(sanitizeLink(this.url), { name: this.name, fallbackName: 'file' }), part: "button" }, h("rtk-icon", { key: '52ae14abb7c27b89861d5ba4c907d606257628c9', icon: this.iconPack.download })), h("div", { key: '02c9ad8d173172a85cc474273a966607d456360e', class: "file-data" }, h("div", { key: '6ceca21685d04f175006ba35a6de194cc98879ad', class: "name" }, this.name), h("div", { key: 'b07d07bcaedee3fd6fbcfe81ce2f6bf757655b5f', class: "file-data-split" }, h("div", { key: '280635ef486de02bc68ca3e774be14fa5a461d1c', class: "ext" }, getExtension(this.name)), h("span", { key: '84f72d8b37b7d15c257faed036b76c737eec780b', class: "divider" }), h("div", { key: '1b88f48f51afe3fceb57920c3d17f586e848a25f', class: "size" }, getFileSize(this.size))))));
1319
1318
  }
1320
1319
  };
1321
1320
  __decorate$9([
@@ -1371,7 +1370,7 @@ const RtkFilePickerButton = class {
1371
1370
  render() {
1372
1371
  const label = this.label || this.t('chat.send_file');
1373
1372
  const icon = this.iconPack[this.icon];
1374
- return (h("rtk-tooltip", { key: '03d24cebc847667a6d59e21d22105c48db0c589c', label: label }, h("rtk-button", { key: 'bddd8cac214d897979c9a38b26643e1027e696e3', variant: "ghost", kind: "icon", onClick: () => this.uploadFile(), title: label }, h("rtk-icon", { key: '0a9756a9f6c1e8ab0c34ea46b3614816aa257df4', icon: icon }))));
1373
+ return (h("rtk-tooltip", { key: '057a0a5a714dbbde228e3481e53adea4f88fb3ad', label: label }, h("rtk-button", { key: '04193df1053b14687fb9464a122b9158707bdda1', variant: "ghost", kind: "icon", onClick: () => this.uploadFile(), title: label }, h("rtk-icon", { key: 'ed2fce30b93dfce9dd6b967d5993c93496cf3388', icon: icon }))));
1375
1374
  }
1376
1375
  };
1377
1376
  __decorate$8([
@@ -1431,7 +1430,7 @@ const RtkImageMessageView = class {
1431
1430
  this.status = 'loading';
1432
1431
  }
1433
1432
  render() {
1434
- return (h("div", { key: '99e8a76eea11e740c21642445fb803b3027f95ff', class: { image: true, loaded: this.status === 'loaded' } }, h("img", { key: '98c0477fab6ae6f86657579d4d4e44dab3af0bf5', src: sanitizeLink(this.url), onLoad: () => {
1433
+ return (h("div", { key: '066606e6ae62634b2466bb46b453e0c2d91b17ea', class: { image: true, loaded: this.status === 'loaded' } }, h("img", { key: 'f042e5d3c1a6341e9fc0845e6643016f1be5b5f7', src: sanitizeLink(this.url), onLoad: () => {
1435
1434
  this.status = 'loaded';
1436
1435
  }, onError: () => {
1437
1436
  this.status = 'errored';
@@ -1439,9 +1438,9 @@ const RtkImageMessageView = class {
1439
1438
  if (this.status === 'loaded') {
1440
1439
  this.onPreview.emit(this.url);
1441
1440
  }
1442
- } }), this.status === 'loading' && (h("div", { key: '91005900f67fb450d9b1515b8fc493e09f5ccebd', class: "image-spinner", title: this.t('chat.img.loading'), "aria-label": this.t('chat.img.loading') }, h("rtk-spinner", { key: 'c96f80a0a53426058635254c5efd78cdccd3a23f', iconPack: this.iconPack }))), this.status === 'errored' && (h("div", { key: 'c1f7a709ccaf0c0ba1104992616f8405e2380c95', class: "image-errored", title: this.t('chat.error.img_not_found'), "aria-label": this.t('chat.error.img_not_found') }, h("rtk-icon", { key: '27d22b3f706d641b5d77a5fa75ba4233663afb88', icon: this.iconPack.image_off }))), this.status === 'loaded' && (h("div", { key: '2caf4c258128cf03dae23769c832a3b7bb76be9e', class: "actions" }, h("rtk-button", { key: 'e668325aa6f1f20a2d4f7d172e483521b709b7c8', class: "action", variant: "secondary", kind: "icon", onClick: () => {
1441
+ } }), this.status === 'loading' && (h("div", { key: 'd4a5030468fbf70afae62bd55ae4d0fa989e15c2', class: "image-spinner", title: this.t('chat.img.loading'), "aria-label": this.t('chat.img.loading') }, h("rtk-spinner", { key: '216aba361a46cc100e7d26cc2daf1ffb0948d695', iconPack: this.iconPack }))), this.status === 'errored' && (h("div", { key: '01f5da8f70872c9fa22dc9a9b70b046b0001d05b', class: "image-errored", title: this.t('chat.error.img_not_found'), "aria-label": this.t('chat.error.img_not_found') }, h("rtk-icon", { key: '0f7e6fed2730f6366d07fc6afddb2b247e9b7d3a', icon: this.iconPack.image_off }))), this.status === 'loaded' && (h("div", { key: '5ac0e61c65a88a8d6b9ee54c900b856854d1b84b', class: "actions" }, h("rtk-button", { key: 'fd83dfecd7b5d9c3976374c3c55731b1f026fc0a', class: "action", variant: "secondary", kind: "icon", onClick: () => {
1443
1442
  this.onPreview.emit(this.url);
1444
- } }, h("rtk-icon", { key: 'ceea157f0a5e4802d2c4041f4304b9202b95bc11', icon: this.iconPack.full_screen_maximize })), h("rtk-button", { key: '2941579aef2546aa70c056bdee9bb76fea9e286f', class: "action", variant: "secondary", kind: "icon", onClick: () => downloadFile(this.url, { fallbackName: 'image' }) }, h("rtk-icon", { key: '3878b4a96f77e419e4a26725bfe7a49e29af8760', icon: this.iconPack.download }))))));
1443
+ } }, h("rtk-icon", { key: '3ca7384fa28e6716345acacf9225ae9471ff8d63', icon: this.iconPack.full_screen_maximize })), h("rtk-button", { key: '198787808c389e4df48d3609a53c2d27cf2e7fb3', class: "action", variant: "secondary", kind: "icon", onClick: () => downloadFile(this.url, { fallbackName: 'image' }) }, h("rtk-icon", { key: 'f38fe3da48d1fc854001c719164c95f0673808c5', icon: this.iconPack.download }))))));
1445
1444
  }
1446
1445
  };
1447
1446
  __decorate$7([
@@ -1532,7 +1531,7 @@ const RtkMarkdownView = class {
1532
1531
  const slicedMessage = this.text.slice(0, this.maxLength);
1533
1532
  const withReply = extractReplyBlock(slicedMessage, true);
1534
1533
  const withoutReply = stripOutReplyBlock(slicedMessage);
1535
- return (h("p", { key: 'beef042bc590e1cb543ddfa4a45b699ab78db63c' }, withReply.length !== 0 && h("blockquote", { key: '5fd5c57b235c15cdd009474d70e2a6074dd0ec0a' }, this.renderMessage(withReply)), withoutReply.length !== 0 && this.renderMessage(withoutReply)));
1534
+ return (h("p", { key: '787e6d3177f4faf1c8dcd7c73d83a6de9c57b42b' }, withReply.length !== 0 && h("blockquote", { key: '1c4b82fb870994e6707d35adcd5e6f2f0e65dd26' }, this.renderMessage(withReply)), withoutReply.length !== 0 && this.renderMessage(withoutReply)));
1536
1535
  }
1537
1536
  };
1538
1537
  RtkMarkdownView.style = RtkMarkdownViewStyle0;
@@ -1913,7 +1912,7 @@ const RtkMenu$1 = class {
1913
1912
  });
1914
1913
  }
1915
1914
  render() {
1916
- return (h(Host, { key: '5d80123d52e211d4f120441d9f79582b4dc53247' }, h("span", { key: '996b1faea4afd983ea69c2bb197b1b6c56c0eca6', id: "trigger", ref: (el) => (this.triggerEl = el), onClick: () => {
1915
+ return (h(Host, { key: '15461c803838be1651df6116a61598ce8ab988f9' }, h("span", { key: 'f36cdd2f1141f46a993daa880682382904a72509', id: "trigger", ref: (el) => (this.triggerEl = el), onClick: () => {
1917
1916
  this.clickedThis = true;
1918
1917
  if (this.menuListEl.style.display !== 'block') {
1919
1918
  this.menuListEl.style.display = 'block';
@@ -1922,7 +1921,7 @@ const RtkMenu$1 = class {
1922
1921
  else {
1923
1922
  this.menuListEl.style.display = 'none';
1924
1923
  }
1925
- } }, h("slot", { key: 'd54671184af01247f285e27bda8dbb9faf1ba399', name: "trigger" })), h("span", { key: '3d57dcf7805d7fb53577e722a265a60acea6971a', part: "menu-list", id: "menu-list", ref: (el) => (this.menuListEl = el) }, h("slot", { key: 'b516e727fc4d435fed30d422ba311099aff70605' }))));
1924
+ } }, h("slot", { key: 'af622c9dbb3394cb46a6bb909a45c5e3248b1a09', name: "trigger" })), h("span", { key: '445258e31b4b775fbc22b268234fe15a33f809c9', part: "menu-list", id: "menu-list", ref: (el) => (this.menuListEl = el) }, h("slot", { key: '87396622c6078253736cbe43a1cac55c6f90754f' }))));
1926
1925
  }
1927
1926
  };
1928
1927
  __decorate$6([
@@ -1957,7 +1956,7 @@ const RtkMenuItem = class {
1957
1956
  this.t = useLanguage();
1958
1957
  }
1959
1958
  render() {
1960
- return (h(Host, { key: '05ed5b993b4c05f4fc295e2ac45c5337d9b993b3', class: { [this.menuVariant]: true } }, h("slot", { key: '80aebd20b238627fa7aa2ab3777ebafd8876faaf', name: "start" }), h("slot", { key: '50ff6c2c4fa7dfe9976030d1e7e39385578b902d' }), h("slot", { key: 'd93c2517156791d636d0b86569bcd79e08ed4e29', name: "end" })));
1959
+ return (h(Host, { key: '8679dae05e846bb8b83a1dbc9580aa2dcad18ccd', class: { [this.menuVariant]: true } }, h("slot", { key: 'da53376b8188bfc47f904d348212fedff932b03a', name: "start" }), h("slot", { key: '4394a3afa13bd298880c1be5255f5a004c5ed42e' }), h("slot", { key: '2be62c70172912e6516ce207b571ea4794aa4f6c', name: "end" })));
1961
1960
  }
1962
1961
  };
1963
1962
  __decorate$5([
@@ -1992,7 +1991,7 @@ const RtkMenuList = class {
1992
1991
  this.t = useLanguage();
1993
1992
  }
1994
1993
  render() {
1995
- return (h(Host, { key: '758a8f0419b51b59f46391e28265bf6201f537d3', class: { [this.menuVariant]: true } }, h("slot", { key: '9bc391de012f416c8c29c33fcc26a146f33afe82' })));
1994
+ return (h(Host, { key: 'b743da0bae39c93cff7896968a64c84166b8a751', class: { [this.menuVariant]: true } }, h("slot", { key: '46ca973e68fccbf5c8c7544f61bb9745840d0054' })));
1996
1995
  }
1997
1996
  };
1998
1997
  __decorate$4([
@@ -2051,9 +2050,37 @@ __decorate$3([
2051
2050
  ], RtkMessageView.prototype, "iconPack", void 0);
2052
2051
  RtkMessageView.style = RtkMessageViewStyle0;
2053
2052
 
2054
- const rtkPaginatedListCss = ".scrollbar{scrollbar-width:thin;scrollbar-color:var(--rtk-scrollbar-color, rgb(var(--rtk-colors-background-600, 60 60 60)))\n var(--rtk-scrollbar-background, transparent)}.scrollbar::-webkit-scrollbar{height:var(--rtk-space-1\\.5, 6px);width:var(--rtk-space-1\\.5, 6px);border-radius:9999px;background-color:var(--rtk-scrollbar-background, transparent)}.scrollbar::-webkit-scrollbar-thumb{border-radius:9999px;background-color:var(--rtk-scrollbar-color, rgb(var(--rtk-colors-background-600, 60 60 60)))}:host{position:relative;display:flex;flex-direction:column;flex:1}.container{box-sizing:border-box;display:flex;flex-direction:column-reverse;padding-top:var(--rtk-space-4, 16px);padding-bottom:var(--rtk-space-4, 16px);padding-left:var(--rtk-space-2, 8px);padding-right:var(--rtk-space-2, 8px);flex:1 0 0px;overflow-y:scroll}.file-picker{display:none}.chat *:first-child{margin-top:var(--rtk-space-0, 0px)}.chat .head{display:flex;align-items:center}.chat .head .name{margin-right:var(--rtk-space-4, 16px);font-size:12px;font-weight:700}.chat .head .time{font-size:12px;color:rgb(var(--rtk-colors-text-800, 255 255 255 / 0.76))}.chat .body{margin-top:var(--rtk-space-2, 8px);margin-bottom:var(--rtk-space-2, 8px);overflow-wrap:break-word;font-size:14px;line-height:1.375}.chat .body .emoji{font-size:24px}p{margin-top:var(--rtk-space-0, 0px);margin-bottom:var(--rtk-space-3, 12px)}rtk-text-message,rtk-image-message,rtk-file-message{margin-top:var(--rtk-space-4, 16px);display:block;padding-left:var(--rtk-space-3, 12px);padding-right:var(--rtk-space-3, 12px);font-family:var(--rtk-font-family, sans-serif);color:rgb(var(--rtk-colors-text-900, 255 255 255 / 0.88));box-sizing:border-box}*[is-continued]{margin-top:var(--rtk-space-3, 12px)}rtk-text-message[is-continued]{margin-top:var(--rtk-space-2, 8px)}.chat .image{position:relative;height:var(--rtk-space-40, 160px);max-width:var(--rtk-space-64, 256px);cursor:pointer}.chat .image img{display:none;height:100%;width:100%;border-radius:var(--rtk-border-radius-sm, 4px);-o-object-fit:cover;object-fit:cover}.chat .image .image-spinner{display:flex;height:100%;width:100%;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-800, 30 30 30) / var(--tw-bg-opacity))}.chat .image .image-spinner rtk-spinner{--tw-text-opacity:1;color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-text-opacity))}.chat .image .image-errored{display:flex;height:100%;width:100%;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--rtk-border-radius-sm, 4px);background-color:rgba(var(--rtk-colors-danger, 255 45 45) / 0.1);--tw-text-opacity:1;color:rgba(var(--rtk-colors-danger, 255 45 45) / var(--tw-text-opacity))}.chat .image .actions{display:none;height:var(--rtk-space-8, 32px);align-items:center;position:absolute;top:var(--rtk-space-2, 8px);right:var(--rtk-space-2, 8px);border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-900, 26 26 26) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-1000, 255 255 255));overflow:hidden;--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.chat .image .actions .action{height:var(--rtk-space-8, 32px);width:var(--rtk-space-8, 32px);border-radius:var(--rtk-border-radius-none, 0);border-width:var(--rtk-border-width-none, 0);border-style:none;background-color:transparent;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.chat .image .actions .action:hover{--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-bg-opacity))}.image.loaded img{display:block}.image.loaded .image-spinner{display:none}.image:hover .actions,.image:focus .actions{display:flex}.chat .file{display:flex;align-items:center;gap:var(--rtk-space-1, 4px);padding-left:var(--rtk-space-2, 8px);padding-right:var(--rtk-space-2, 8px);padding-top:var(--rtk-space-1\\.5, 6px);padding-bottom:var(--rtk-space-1\\.5, 6px);border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-700, 44 44 44) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-700, 255 255 255 / 0.64))}.chat .file .file-data{flex:1 1 0%}.chat .file .file-data .name{word-break:break-all;color:rgb(var(--rtk-colors-text-1000, 255 255 255));overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.chat .file .file-data .file-data-split{margin-top:var(--rtk-space-0\\.5, 2px);display:flex;align-items:center;font-size:12px}.chat .file .file-data .file-data-split .ext{margin-right:var(--rtk-space-2, 8px);text-transform:uppercase;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.chat .file .file-data .file-data-split .divider{height:var(--rtk-space-4, 16px);width:var(--rtk-space-0\\.5, 2px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-bg-opacity))}.chat .file .file-data .file-data-split .size{margin-left:var(--rtk-space-2, 8px)}.smallest-dom-element{width:1px}#top-scroll{transform:translateY(20vh)}#bottom-scroll{transform:translateY(-20vh)}a{--tw-text-opacity:1;color:rgba(var(--rtk-colors-brand-300, 73 124 253) / var(--tw-text-opacity));text-decoration-line:none}a:hover{text-decoration-line:underline}.show-new-messages-ctr{pointer-events:none;position:absolute;bottom:var(--rtk-space-2, 8px);right:var(--rtk-space-4, 16px);z-index:10;margin-top:calc(var(--rtk-space-14, 56px) * -1);--tw-translate-y:var(--rtk-space-28, 112px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:0;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.show-new-messages-ctr.active{--tw-translate-y:var(--rtk-space-0, 0px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:1}.show-new-messages{pointer-events:auto;border-radius:9999px}.show-new-messages:hover{border-radius:9999px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-ring-opacity));--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-bg-opacity))}rtk-spinner,.empty-list{margin:auto}.page-wrapper{margin-left:var(--rtk-space-1, 4px);margin-right:var(--rtk-space-1, 4px)}.message-wrapper{margin-bottom:var(--rtk-space-2, 8px)}.pinned .message-wrapper{position:relative}.pinned .pin-icon{position:absolute;right:calc(var(--rtk-space-1, 4px) * -1);top:calc(var(--rtk-space-1, 4px) * -1);display:flex;border-radius:var(--rtk-border-radius-sm, 4px)}.pinned rtk-message-view{--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-700, 44 44 44) / var(--tw-bg-opacity));padding-top:var(--rtk-space-1, 4px);padding-bottom:var(--rtk-space-1, 4px)}.load-more-on-top-container{pointer-events:none;position:absolute;top:var(--rtk-space-2, 8px);right:var(--rtk-space-4, 16px);z-index:10}.load-more-icon{pointer-events:auto;border-radius:9999px}.load-more-icon:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-ring-opacity));--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-bg-opacity))}";
2053
+ const rtkPaginatedListCss = ".scrollbar{scrollbar-width:thin;scrollbar-color:var(--rtk-scrollbar-color, rgb(var(--rtk-colors-background-600, 60 60 60)))\n var(--rtk-scrollbar-background, transparent)}.scrollbar::-webkit-scrollbar{height:var(--rtk-space-1\\.5, 6px);width:var(--rtk-space-1\\.5, 6px);border-radius:9999px;background-color:var(--rtk-scrollbar-background, transparent)}.scrollbar::-webkit-scrollbar-thumb{border-radius:9999px;background-color:var(--rtk-scrollbar-color, rgb(var(--rtk-colors-background-600, 60 60 60)))}:host{position:relative;display:flex;flex-direction:column;flex:1}.container{box-sizing:border-box;display:flex;flex-direction:column-reverse;padding-top:var(--rtk-space-4, 16px);padding-bottom:var(--rtk-space-4, 16px);padding-left:var(--rtk-space-2, 8px);padding-right:var(--rtk-space-2, 8px);flex:1 0 0px;overflow-y:scroll}.file-picker{display:none}.chat *:first-child{margin-top:var(--rtk-space-0, 0px)}.chat .head{display:flex;align-items:center}.chat .head .name{margin-right:var(--rtk-space-4, 16px);font-size:12px;font-weight:700}.chat .head .time{font-size:12px;color:rgb(var(--rtk-colors-text-800, 255 255 255 / 0.76))}.chat .body{margin-top:var(--rtk-space-2, 8px);margin-bottom:var(--rtk-space-2, 8px);overflow-wrap:break-word;font-size:14px;line-height:1.375}.chat .body .emoji{font-size:24px}p{margin-top:var(--rtk-space-0, 0px);margin-bottom:var(--rtk-space-3, 12px)}rtk-text-message,rtk-image-message,rtk-file-message{margin-top:var(--rtk-space-4, 16px);display:block;padding-left:var(--rtk-space-3, 12px);padding-right:var(--rtk-space-3, 12px);font-family:var(--rtk-font-family, sans-serif);color:rgb(var(--rtk-colors-text-900, 255 255 255 / 0.88));box-sizing:border-box}*[is-continued]{margin-top:var(--rtk-space-3, 12px)}rtk-text-message[is-continued]{margin-top:var(--rtk-space-2, 8px)}.chat .image{position:relative;height:var(--rtk-space-40, 160px);max-width:var(--rtk-space-64, 256px);cursor:pointer}.chat .image img{display:none;height:100%;width:100%;border-radius:var(--rtk-border-radius-sm, 4px);-o-object-fit:cover;object-fit:cover}.chat .image .image-spinner{display:flex;height:100%;width:100%;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-800, 30 30 30) / var(--tw-bg-opacity))}.chat .image .image-spinner rtk-spinner{--tw-text-opacity:1;color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-text-opacity))}.chat .image .image-errored{display:flex;height:100%;width:100%;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--rtk-border-radius-sm, 4px);background-color:rgba(var(--rtk-colors-danger, 255 45 45) / 0.1);--tw-text-opacity:1;color:rgba(var(--rtk-colors-danger, 255 45 45) / var(--tw-text-opacity))}.chat .image .actions{display:none;height:var(--rtk-space-8, 32px);align-items:center;position:absolute;top:var(--rtk-space-2, 8px);right:var(--rtk-space-2, 8px);border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-900, 26 26 26) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-1000, 255 255 255));overflow:hidden;--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.chat .image .actions .action{height:var(--rtk-space-8, 32px);width:var(--rtk-space-8, 32px);border-radius:var(--rtk-border-radius-none, 0);border-width:var(--rtk-border-width-none, 0);border-style:none;background-color:transparent;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.chat .image .actions .action:hover{--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-bg-opacity))}.image.loaded img{display:block}.image.loaded .image-spinner{display:none}.image:hover .actions,.image:focus .actions{display:flex}.chat .file{display:flex;align-items:center;gap:var(--rtk-space-1, 4px);padding-left:var(--rtk-space-2, 8px);padding-right:var(--rtk-space-2, 8px);padding-top:var(--rtk-space-1\\.5, 6px);padding-bottom:var(--rtk-space-1\\.5, 6px);border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-700, 44 44 44) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-700, 255 255 255 / 0.64))}.chat .file .file-data{flex:1 1 0%}.chat .file .file-data .name{word-break:break-all;color:rgb(var(--rtk-colors-text-1000, 255 255 255));overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.chat .file .file-data .file-data-split{margin-top:var(--rtk-space-0\\.5, 2px);display:flex;align-items:center;font-size:12px}.chat .file .file-data .file-data-split .ext{margin-right:var(--rtk-space-2, 8px);text-transform:uppercase;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.chat .file .file-data .file-data-split .divider{height:var(--rtk-space-4, 16px);width:var(--rtk-space-0\\.5, 2px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-bg-opacity))}.chat .file .file-data .file-data-split .size{margin-left:var(--rtk-space-2, 8px)}.smallest-dom-element{width:1px}#top-scroll{transform:translateY(20vh);transform:translateY(20px)}a{--tw-text-opacity:1;color:rgba(var(--rtk-colors-brand-300, 73 124 253) / var(--tw-text-opacity));text-decoration-line:none}a:hover{text-decoration-line:underline}.show-new-messages-ctr{position:absolute;bottom:var(--rtk-space-4, 16px);right:var(--rtk-space-4, 16px);z-index:10;margin-top:calc(var(--rtk-space-14, 56px) * -1);--tw-translate-y:var(--rtk-space-28, 112px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:0;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.show-new-messages-ctr.active{--tw-translate-y:var(--rtk-space-0, 0px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:pointer;opacity:1}.show-new-messages{pointer-events:auto;border-radius:9999px}.show-new-messages:hover{border-radius:9999px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-ring-opacity));--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-bg-opacity))}rtk-spinner,.empty-list{margin:auto}.page-wrapper{margin-left:var(--rtk-space-1, 4px);margin-right:var(--rtk-space-1, 4px);display:flex;flex-direction:column-reverse}.message-wrapper{margin-bottom:var(--rtk-space-2, 8px)}.pinned .message-wrapper{position:relative}.pinned .pin-icon{position:absolute;right:calc(var(--rtk-space-1, 4px) * -1);top:calc(var(--rtk-space-1, 4px) * -1);display:flex;border-radius:var(--rtk-border-radius-sm, 4px)}.pinned rtk-message-view{--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-700, 44 44 44) / var(--tw-bg-opacity));padding-top:var(--rtk-space-1, 4px);padding-bottom:var(--rtk-space-1, 4px)}.load-more-on-top-container{pointer-events:none;position:absolute;top:var(--rtk-space-2, 8px);right:var(--rtk-space-4, 16px);z-index:10}.load-more-icon{pointer-events:auto;border-radius:9999px}.load-more-icon:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-ring-opacity));--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-bg-opacity))}";
2055
2054
  const RtkPaginatedListStyle0 = rtkPaginatedListCss;
2056
2055
 
2056
+ /**
2057
+ * HOW INFINITE SCROLL WORKS:
2058
+ *
2059
+ * We use intersectionObserver to scroll up.
2060
+ * We use scrollEnd listener to scroll down.
2061
+ *
2062
+ * Why?
2063
+ * intersectionObserver doesn't work reliably for 2 way scrolling but has great ux,
2064
+ * so we use it to smoothly scroll up.
2065
+ *
2066
+ * We have empty divs at the top and bottom ($topRef, $bottomRef)
2067
+ * which act as triggers to tell that we have reached the top or end of our messages and need to fetch new messages,
2068
+ *
2069
+ * When scrolling up, we can't remove pages as intersectionObserver relies on
2070
+ * the index of dom elements to work properly.
2071
+ * So instead, we fetch older messages and push them to the end of the 2d array
2072
+ * if length exceeds pagesAllowed, we free up the pages and keep the first empty index in memory (firstEmptyIndex).
2073
+ *
2074
+ * For scrolling down, when scroll ends we see if the bottomRef is in view.
2075
+ * If yes, we fetch the new page and insert it at the firstEmptyIndex.
2076
+ * We update timestamps & firstEmptyIndex, then we rerender.
2077
+ *
2078
+ * If we have exceeded our page allowance we delete old pages.
2079
+ *
2080
+ * In this case deleting pages is okay as we are not relying on the index of dom elements to detect page end.
2081
+ *
2082
+ * This also simplifies the code because when a user scrolls up we do not need to manage a lastEmptyIndex.
2083
+ */
2057
2084
  var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2058
2085
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2059
2086
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
@@ -2067,274 +2094,257 @@ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators,
2067
2094
  const RtkPaginatedList = class {
2068
2095
  constructor(hostRef) {
2069
2096
  registerInstance(this, hostRef);
2097
+ /**
2098
+ * when scrolling up, we can't remove pages as intersectionObserver relies on
2099
+ * the index of dom elements to stay stable.
2100
+ * So, instead we free up the pages and keep the last empty index in memory.
2101
+ */
2102
+ this.firstEmptyIndex = -1;
2103
+ this.maxTS = 0;
2104
+ // the length of pages will always be pageSize + 2
2105
+ this.pages = [];
2106
+ /** label to show when empty */
2107
+ this.emptyListLabel = null;
2108
+ this.rerenderBoolean = false;
2109
+ this.showEmptyListLabel = false;
2070
2110
  /** Icon pack */
2071
2111
  this.iconPack = defaultIconPack;
2072
2112
  /** Language */
2073
2113
  this.t = useLanguage();
2074
- /** label to show when empty */
2075
- this.emptyListLabel = null;
2076
2114
  this.isLoading = false;
2077
2115
  this.isLoadingTop = false;
2078
2116
  this.isLoadingBottom = false;
2079
- this.hasMoreDataAtTop = false;
2080
- this.rerenderBoolean = false;
2081
2117
  /**
2082
- * This gets disabled when the user scrolls up and the bottom node
2083
- * is not visible anymore.
2084
- */
2085
- this.shouldRenderNewNodes = true;
2086
- /**
2087
- * This gets disabled when the user scrolls up and the bottom node
2088
- * is not visible anymore.
2089
- */
2090
- this.hasNewNodesToRender = false;
2091
- this.showEmptyListLabel = false;
2092
- /**
2093
- * This is a private variable not a state
2094
- * since we want to debounce rerenders
2095
- *
2096
- * A list of pages where each page contains a number of Nodes
2097
- * [
2098
- * [Node 1, Node 2, Node 3.... Node N],
2099
- * [Node 1, Node 2, Node 3.... Node N],
2100
- * ]
2101
- */
2102
- this.pagesToRender = [[]];
2103
- this.currentTime = () => {
2104
- return new Date().getTime();
2105
- };
2118
+ * Even when auto scroll is enabled, we only want to scroll if a new realtime message has arrived.
2119
+ * This variable tells us if we should respect auto scroll after a new page has been loaded.
2120
+ * It is also used by the scroll to bottom button.
2121
+ * */
2122
+ this.shouldScrollToBottom = false;
2123
+ /** UI Indicator for the "scroll to bottom" button.
2124
+ * Toggles on when a new node is added and autoscroll is disabled.
2125
+ * Toggles off when all nodes are loaded */
2126
+ this.showNewMessagesCTR = false;
2106
2127
  this.observe = (el) => {
2107
2128
  if (!el)
2108
2129
  return;
2109
2130
  this.intersectionObserver.observe(el);
2110
2131
  };
2132
+ this.isAtBottom = () => {
2133
+ const rect = this.$bottomRef.getBoundingClientRect();
2134
+ return rect.top >= 0 && rect.bottom <= window.innerHeight;
2135
+ };
2111
2136
  }
2112
2137
  /**
2113
- * On a new node created
2138
+ * Adds a new node to the beginning of the paginated list
2139
+ * @param {DataNode} node - The data node to add to the beginning of the list
2114
2140
  */
2115
2141
  async onNewNode(node) {
2116
- if (!this.shouldRenderNewNodes) {
2117
- this.hasNewNodesToRender = true;
2118
- return;
2142
+ // Always update the maxTS. New messages will load on scroll till the end cursor (newTS) reaches this value.
2143
+ this.maxTS = Math.max(this.maxTS, node.timeMs);
2144
+ // if we are at the bottom of the page
2145
+ if (this.firstEmptyIndex === -1) {
2146
+ // append messages to the page if page has not reached full capacity
2147
+ if (this.pages[0].length < this.pageSize) {
2148
+ this.pages[0].unshift(node);
2149
+ this.newTS = node.timeMs;
2150
+ this.rerender();
2151
+ }
2152
+ else {
2153
+ // if page is at full capacity, load next page
2154
+ this.loadNextPage();
2155
+ }
2119
2156
  }
2120
- this.addNodeToRender(node, false);
2121
- this.rerender();
2122
- }
2123
- /**
2124
- * On node deleted
2125
- */
2126
- async onNodeDelete(key) {
2127
- const oldLength = this.pagesToRender.flat().length;
2128
- this.pagesToRender = this.pagesToRender.map((page) => page.filter((item) => item.id !== key));
2129
- if (oldLength !== this.pagesToRender.flat().length) {
2130
- this.rerender();
2157
+ // If autoscroll is enabled, this method will scroll to the bottom
2158
+ if (this.autoScroll) {
2159
+ this.shouldScrollToBottom = true;
2160
+ this.scrollToBottom();
2161
+ }
2162
+ else {
2163
+ this.showNewMessagesCTR = true;
2131
2164
  }
2132
2165
  }
2166
+ // this method is called recursively based on shouldScrollToBottom (see scrollEnd listener)
2167
+ scrollToBottom() {
2168
+ this.$bottomRef.scrollIntoView({ behavior: 'smooth' });
2169
+ }
2133
2170
  /**
2134
- * On node updated
2135
- */
2136
- async onNodeUpdate(key, newItem) {
2137
- let shouldRerender = false;
2138
- this.pagesToRender = this.pagesToRender.map((page) => page.map((item) => {
2139
- if (item.id === key) {
2140
- shouldRerender = true;
2141
- return newItem;
2171
+ * Deletes a node anywhere from the list
2172
+ * @param {string} id - The id of the node to delete
2173
+ * */
2174
+ async onNodeDelete(id) {
2175
+ // Iterate only over pages that have content (not empty)
2176
+ for (let i = this.pages.length - 1; i > this.firstEmptyIndex; i--) {
2177
+ const index = this.pages[i].findIndex((node) => node.id === id);
2178
+ // message in view
2179
+ if (index !== -1) {
2180
+ // delete message
2181
+ this.pages[i].splice(index, 1);
2182
+ if (i === this.firstEmptyIndex + 1) {
2183
+ // if newest page is empty, update first empty index
2184
+ if (this.pages[i].length === 0)
2185
+ this.firstEmptyIndex++;
2186
+ // update timestamp, first empty index could be -1, so we need to cap it at 0
2187
+ this.newTS = this.pages[Math.max(this.firstEmptyIndex, 0)][0].timeMs;
2188
+ }
2189
+ else if (i === this.firstEmptyIndex + this.pagesAllowed) {
2190
+ // if oldest page is empty, remove it
2191
+ if (this.pages[i].length === 0)
2192
+ this.pages.pop();
2193
+ // update timestamp
2194
+ const lastPage = this.pages[this.firstEmptyIndex + this.pagesAllowed];
2195
+ this.oldTS = lastPage[lastPage.length - 1].timeMs;
2196
+ }
2197
+ this.rerender();
2142
2198
  }
2143
- return item;
2144
- }));
2145
- if (shouldRerender)
2146
- this.rerender();
2147
- }
2148
- onItemChanged(newItemId, oldItemId) {
2149
- if (newItemId !== oldItemId) {
2150
- this.pagesToRender = [[]];
2151
- this.loadFirstPage().then(() => this.rerender());
2152
2199
  }
2153
2200
  }
2201
+ /**
2202
+ * Updates a new node anywhere in the list
2203
+ * @param {string} _id - The id of the node to update
2204
+ * @param {DataNode} _node - The updated data node
2205
+ * */
2206
+ async onNodeUpdate(_id, _node) { }
2207
+ rerender() {
2208
+ this.rerenderBoolean = !this.rerenderBoolean;
2209
+ }
2154
2210
  connectedCallback() {
2155
2211
  this.rerender = debounce(this.rerender.bind(this), 50, { maxWait: 200 });
2156
- this.autoScroll = true;
2157
2212
  this.intersectionObserver = new IntersectionObserver((entries) => {
2158
- writeTask(() => {
2213
+ writeTask(async () => {
2159
2214
  for (const entry of entries) {
2160
- if (entry.target.id === 'bottom-scroll') {
2161
- if (entry.isIntersecting)
2162
- this.loadBottom();
2163
- else
2164
- this.shouldRenderNewNodes = false;
2165
- }
2166
2215
  if (entry.target.id === 'top-scroll' && entry.isIntersecting) {
2167
- this.loadTop();
2216
+ this.isLoadingTop = true;
2217
+ await this.loadPrevPage();
2218
+ this.isLoadingTop = false;
2168
2219
  }
2169
2220
  }
2170
2221
  });
2171
2222
  });
2172
2223
  }
2173
- disconnectedCallback() {
2174
- this.intersectionObserver.disconnect();
2175
- }
2176
2224
  componentDidLoad() {
2177
- /**
2178
- * Adding observes here so that on the first render we scroll down
2179
- * and shouldRenderNewNodes remains true
2180
- */
2181
- this.loadFirstPage();
2182
2225
  this.observe(this.$topRef);
2183
- this.observe(this.$bottomRef);
2184
- }
2185
- componentDidRender() {
2186
- if (this.shouldRenderNewNodes && this.autoScroll)
2187
- smoothScrollToBottom(this.$paginatedList);
2188
- }
2189
- loadFirstPage() {
2190
- return this.loadPage(this.currentTime(), this.pageSize, true, (data) => {
2191
- if (data.length === 0) {
2192
- this.showEmptyListLabel = true;
2193
- }
2194
- });
2195
- }
2196
- loadTop() {
2197
- /**
2198
- * If there is only one unfilled page or no page, no need to check
2199
- * for top since it will be empty
2200
- */
2201
- if (this.pagesToRender.length === 0)
2202
- return;
2203
- if (this.pagesToRender.length === 1 && this.pagesToRender[0].length < this.pageSize)
2204
- return;
2205
- /**
2206
- * TODO: Make this more flexible currently this only works with chat
2207
- */
2208
- const oldestVNode = this.pagesToRender[0][0];
2209
- const oldestTimestamp = oldestVNode.timeMs;
2210
- // TODO: scrollIntoView
2211
- const onPageRendered = () => { }; // oldestVNode.$elm$?.scrollIntoView();
2212
- this.isLoadingTop = true;
2213
- this.loadPage(oldestTimestamp - 1, this.pageSize, true, onPageRendered, 'top');
2214
- }
2215
- loadBottom() {
2216
- /**
2217
- * If there is only one unfilled page or no page, no need to check
2218
- * for top since it will be empty
2219
- */
2220
- if (this.pagesToRender.length === 0) {
2221
- this.shouldRenderNewNodes = true;
2222
- return;
2223
- }
2224
- if (this.pagesToRender.length === 1 && this.pagesToRender[0].length < this.pageSize) {
2225
- this.shouldRenderNewNodes = true;
2226
- return;
2227
- }
2228
- const newestVNode = this.pagesToRender.at(-1).at(-1);
2229
- const newestTimestamp = newestVNode.timeMs;
2230
- // TODO: scrollIntoView
2231
- const onPageRendered = () => smoothScrollToBottom(this.$paginatedList);
2232
- this.isLoadingBottom = true;
2233
- this.loadPage(newestTimestamp + 1, this.pageSize, false, onPageRendered, 'bottom');
2234
- }
2235
- addNodeToRender(node, addToStart) {
2236
- if (addToStart) {
2237
- const firstPage = this.pagesToRender[0];
2238
- if (firstPage && (firstPage === null || firstPage === void 0 ? void 0 : firstPage.length) < this.pageSize) {
2239
- /**
2240
- * If first page is not full then just add to that page
2241
- */
2242
- firstPage.unshift(node);
2243
- }
2244
- else {
2245
- /**
2246
- * If first page is full then add a new page to the start
2247
- */
2248
- const newPage = [node];
2249
- this.pagesToRender.unshift(newPage);
2250
- this.removeLastPageIfNeeded(false);
2251
- }
2252
- }
2253
- else {
2254
- const [lastPage] = this.pagesToRender.slice(-1);
2255
- if (lastPage && (lastPage === null || lastPage === void 0 ? void 0 : lastPage.length) < this.pageSize) {
2256
- /**
2257
- * If last page is not full then just add it
2258
- */
2259
- lastPage.push(node);
2260
- }
2261
- else {
2226
+ if (this.$containerRef) {
2227
+ this.$containerRef.onscrollend = async () => {
2262
2228
  /**
2263
- * If last page is full add a new page with just
2264
- * this node
2229
+ * Load new page if:
2230
+ * if there are nodes to load at the bottom (maxTS > newTS)
2231
+ * or if there are pages to fill at the bottom (firstEmptyIndex > -1)
2265
2232
  */
2266
- const newPage = [node];
2267
- this.pagesToRender.push(newPage);
2268
- this.removeLastPageIfNeeded(true);
2269
- }
2233
+ if (this.isAtBottom() && (this.maxTS > this.newTS || this.firstEmptyIndex > -1)) {
2234
+ this.isLoadingBottom = true;
2235
+ await this.loadNextPage();
2236
+ this.isLoadingBottom = false;
2237
+ if (this.shouldScrollToBottom)
2238
+ this.scrollToBottom();
2239
+ }
2240
+ };
2270
2241
  }
2271
2242
  }
2272
- /**
2273
- * @param start
2274
- * @param end
2275
- * @param reversed Defines whether to add the page at the beginning or the end
2276
- * @param onPageLoaded Callback for when all new nodes are rendered
2277
- * @param direction Indicates if loading from 'top' or 'bottom'
2278
- */
2279
- async loadPage(timestamp, size, reversed, onPageRendered = () => { }, direction) {
2243
+ async loadPrevPage() {
2244
+ if (this.isLoading)
2245
+ return;
2246
+ /**
2247
+ * NOTE(ikabra): this case also runs on initial load
2248
+ * if scrolling up ->
2249
+ * fetch older messages and push to the end of the array
2250
+ * cleanup 1st non empty page from the array if length exceeds pagesAllowed
2251
+ */
2252
+ // if no old timestamp, it means we are at initial state
2253
+ if (!this.oldTS)
2254
+ this.oldTS = new Date().getTime();
2255
+ // load data
2280
2256
  this.isLoading = true;
2281
- const data = (await this.fetchData(timestamp, size, reversed));
2257
+ const data = await this.fetchData(this.oldTS - 1, this.pageSize, true);
2282
2258
  this.isLoading = false;
2283
- if (direction === 'top') {
2284
- this.isLoadingTop = false;
2285
- this.hasMoreDataAtTop = (data === null || data === void 0 ? void 0 : data.length) > 0;
2286
- }
2287
- if (direction === 'bottom') {
2288
- this.isLoadingBottom = false;
2289
- }
2290
- if (!(data === null || data === void 0 ? void 0 : data.length)) {
2259
+ // no more old messages to show, we are at the top of the page
2260
+ if (!data.length)
2261
+ return;
2262
+ // add old data to the end of the array
2263
+ this.pages.push(data);
2264
+ // clear old pages when we reach the limit
2265
+ if (this.pages.length > this.pagesAllowed) {
2266
+ this.pages[this.pages.length - this.pagesAllowed - 1] = [];
2291
2267
  /**
2292
- * While scrolling down if there were no new items found
2293
- * then start rendering new nodes;
2268
+ * find last non empty page in range (this.pages.length, this.firstEmptyIndex)
2269
+ * we are doing this because any of the middle pages in the currently rendered pages
2270
+ * could be empty as we allow deleting messages.
2271
+ * This helps us set the first empty index correctly.
2294
2272
  */
2295
- if (!reversed) {
2296
- this.hasNewNodesToRender = false;
2297
- this.shouldRenderNewNodes = true;
2273
+ for (let i = this.firstEmptyIndex + 1; i < this.pages.length; i++) {
2274
+ if (this.pages[i].length > 0)
2275
+ break;
2276
+ this.firstEmptyIndex = i;
2298
2277
  }
2299
- onPageRendered([]);
2300
- return;
2301
2278
  }
2302
- data.forEach((node) => this.addNodeToRender(node, reversed));
2279
+ // update the old timestamp
2280
+ const lastPage = this.pages[this.pages.length - 1];
2281
+ this.oldTS = lastPage[lastPage.length - 1].timeMs;
2282
+ // update the new timestamp
2283
+ this.newTS = this.pages[this.firstEmptyIndex + 1][0].timeMs;
2303
2284
  this.rerender();
2304
- onPageRendered(data);
2305
2285
  }
2306
- rerender() {
2307
- this.rerenderBoolean = !this.rerenderBoolean;
2308
- }
2309
- removeLastPageIfNeeded(removeFromStart) {
2310
- if (this.pagesToRender.length > this.pagesAllowed) {
2311
- if (removeFromStart)
2312
- this.pagesToRender.shift();
2313
- else
2314
- this.pagesToRender.pop();
2286
+ async loadNextPage() {
2287
+ if (this.isLoading)
2288
+ return;
2289
+ // new timestamp needs to be assigned by loadPrevPage method
2290
+ if (!this.newTS) {
2291
+ this.showNewMessagesCTR = false;
2292
+ this.shouldScrollToBottom = false;
2293
+ return;
2315
2294
  }
2316
- }
2317
- onDownArrowClicked() {
2318
- /**
2319
- * Load the freshest pages
2320
- */
2321
- this.loadBottom();
2322
- }
2323
- onLoadMoreOnTopClicked() {
2324
- this.loadTop();
2295
+ // load data
2296
+ this.isLoading = true;
2297
+ const data = await this.fetchData(this.newTS + 1, this.pageSize, false);
2298
+ this.isLoading = false;
2299
+ // no more new messages to load
2300
+ if (!data.length) {
2301
+ this.showNewMessagesCTR = false;
2302
+ this.shouldScrollToBottom = false;
2303
+ // remove extra pages from the start if any (could be due to users deleting messages)
2304
+ this.pages = this.pages.filter((page) => page.length > 0);
2305
+ this.firstEmptyIndex = -1;
2306
+ return;
2307
+ }
2308
+ // when filling empty pages
2309
+ if (this.firstEmptyIndex > -1) {
2310
+ this.pages[this.firstEmptyIndex] = data.reverse();
2311
+ }
2312
+ else {
2313
+ // when already at the bottom and loading messages in realtime
2314
+ this.pages.unshift(data.reverse());
2315
+ }
2316
+ if (this.pages.length > this.pagesAllowed) {
2317
+ this.pages.pop();
2318
+ }
2319
+ // smallest value for firstEmptyIndex can be -1, so we cap the index at 0
2320
+ this.newTS = this.pages[Math.max(0, this.firstEmptyIndex)][0].timeMs;
2321
+ // remove all empty pages from the end
2322
+ for (let i = this.pages.length - 1; i > this.firstEmptyIndex; i--) {
2323
+ if (this.pages[i].length > 0)
2324
+ break;
2325
+ // if page is empty, remove it
2326
+ this.pages.pop();
2327
+ }
2328
+ // update the old timestamp
2329
+ const lastPage = this.pages[this.pages.length - 1];
2330
+ this.oldTS = lastPage[lastPage.length - 1].timeMs;
2331
+ // when scrolling too fast scroll a bit to the top to be able to load new messages when you scroll down
2332
+ if (this.$containerRef.scrollTop === 0)
2333
+ this.$containerRef.scrollTop = -60;
2334
+ // smallest value for this index can be -1 (indicates we are at the bottom of the page).
2335
+ this.firstEmptyIndex = Math.max(-1, this.firstEmptyIndex - 1);
2336
+ this.rerender();
2325
2337
  }
2326
2338
  render() {
2327
- var _a;
2328
2339
  /**
2329
2340
  * div.container is flex=column-reverse
2330
2341
  * which is why div#bottom-scroll comes before div#top-scroll
2331
- * div.page-wrapper prevents reversal of messages
2332
2342
  */
2333
- return (h(Host, { key: '2ee90baa6b1b9f88829d04632c129287b936ba30' }, h("div", { key: 'd68db998539fd1df12e92d61828a04628f7d9f0a', class: "scrollbar container", part: "container", ref: (el) => (this.$paginatedList = el) }, h("div", { key: '4fe1ae2b1aa961242ba6be8ca3b8b6c6e504ef5c', class: { 'show-new-messages-ctr': true, active: !this.shouldRenderNewNodes } }, h("rtk-button", { key: '5c7ad4c553eb6f1b7f14bad406e49fe18f63d100', class: "show-new-messages", kind: "icon", variant: "secondary", part: "show-new-messages", onClick: () => this.onDownArrowClicked() }, h("rtk-icon", { key: 'dacfc24e3fb9ec34e40447b606e256eefaefdc6e', icon: this.iconPack.chevron_down }))), h("div", { key: '569ffce0c198638b831a3eb0bac9a032c863ed9d', class: "smallest-dom-element", id: "bottom-scroll", ref: (el) => (this.$bottomRef = el) }), this.isLoadingBottom && h("rtk-spinner", { key: '06f571694e1877d8eba4ec939bc6a74f68f16caa', size: "sm" }), this.isLoading && this.pagesToRender.flat().length === 0 && h("rtk-spinner", { key: '628c0eef27fe29d2c3cbf6f0da7d10a12560c127', size: "lg" }), this.pagesToRender.flat().length === 0 && this.showEmptyListLabel ? (h("div", { class: "empty-list" }, (_a = this.emptyListLabel) !== null && _a !== void 0 ? _a : this.t('list.empty'))) : (h("div", { class: "page-wrapper" }, this.pagesToRender.map((page) => this.createNodes(page)))), this.hasMoreDataAtTop && !this.isLoadingTop && (h("div", { key: 'fc5207945ed0949074e3460d9943130eb4289409', class: "load-more-on-top-container" }, h("rtk-button", { key: '4fff7d14798340dc576e4aeeebfe9e3946cbcf6a', class: "load-more-icon", kind: "icon", variant: "secondary", part: "load-more-icon", onClick: () => this.onLoadMoreOnTopClicked() }, h("rtk-icon", { key: '87b2abaf1c850189246d1b9aa84b55c374b31d1d', icon: this.iconPack.chevron_up })))), this.isLoadingTop && h("rtk-spinner", { key: '766ac48eebaa236a9a44f770d777c2c31fabe10e', size: "sm" }), h("div", { key: '6a5287556030f9f426ac2d8b6063b13a966135ff', class: "smallest-dom-element", id: "top-scroll", ref: (el) => (this.$topRef = el) }))));
2343
+ return (h(Host, { key: '91ac7d0ca3fb720259945ffaa97f465b34c694fa' }, h("div", { key: '33896c19ecc4359ae163c65b5c71b9f17673e765', class: "scrollbar container", part: "container", ref: (el) => (this.$containerRef = el) }, h("div", { key: 'e26a5ef3979ec132277b9598afc17ea65683f6c8', class: { 'show-new-messages-ctr': true, active: this.showNewMessagesCTR } }, h("rtk-button", { key: 'e769a8f54a298af456552733dc9de27d059e5138', class: "show-new-messages", kind: "icon", variant: "secondary", part: "show-new-messages", onClick: () => {
2344
+ this.shouldScrollToBottom = true;
2345
+ this.scrollToBottom();
2346
+ } }, h("rtk-icon", { key: '6fb4cbc2247eb971004a94926b95ebd0f90ab0fd', icon: this.iconPack.chevron_down }))), h("div", { key: 'e91dd8f25012e4509e0ff3cb4d6b65aa9467d427', class: "smallest-dom-element", id: "bottom-scroll", ref: (el) => (this.$bottomRef = el) }), this.isLoadingBottom && this.pages.length > 0 && h("rtk-spinner", { key: '199c0ccffd57716bd5a05dcef8610113d3c58d3d', size: "sm" }), this.isLoading && this.pages.length < 1 && h("rtk-spinner", { key: 'b8a3e08a25b2bc1d50b5a9b1b2deda802ae5eb28', size: "lg" }), !this.isLoading && this.pages.flat().length === 0 ? (h("div", { class: "empty-list" }, this.t('list.empty'))) : (h("div", { class: "page-wrapper" }, this.pages.map((page, pageIndex) => (h("div", { class: "page", "data-page-index": pageIndex }, this.createNodes([...page].reverse())))))), this.isLoadingTop && this.pages.length > 0 && h("rtk-spinner", { key: '2cb56b4f70d37548fd9aa71b961559b43c54a922', size: "sm" }), h("div", { key: '4b183c49bfe60fd63af40e02b9b46215c08bb484', class: "smallest-dom-element", id: "top-scroll", ref: (el) => (this.$topRef = el) }))));
2334
2347
  }
2335
- static get watchers() { return {
2336
- "selectedItemId": ["onItemChanged"]
2337
- }; }
2338
2348
  };
2339
2349
  __decorate$2([
2340
2350
  SyncWithStore()
@@ -2366,7 +2376,7 @@ const RtkSpinner = class {
2366
2376
  this.size = 'md';
2367
2377
  }
2368
2378
  render() {
2369
- return (h(Host, { key: '6533b4dea247db4d15d92409c6a9dc8f9662833d' }, h("rtk-icon", { key: '1db4c3e42e78355313ea59f3247cc0a5ef8283c7', class: "spinner", icon: this.iconPack.spinner })));
2379
+ return (h(Host, { key: 'c042cbd31d8fa9e58c0cbbc5646575a3172fc824' }, h("rtk-icon", { key: '0171ba3d5f7506e2c67eb813c5ad5b263352088d', class: "spinner", icon: this.iconPack.spinner })));
2370
2380
  }
2371
2381
  };
2372
2382
  __decorate$1([
@@ -2444,7 +2454,7 @@ const RtkTextComposerView = class {
2444
2454
  }
2445
2455
  }
2446
2456
  render() {
2447
- return (h("div", { key: 'f6fee4d5766f78409f6bcc788be8ecdd5ad8b865', class: "chat-input", part: "chat-input-container" }, this.maxLengthBreached > 0 && (h("div", { key: '10c3721417e791557b4d0b126838209880e9f570', class: 'text-error ' + (this.maxLengthBreached === this.maxLength ? 'breached' : '') }, h("rtk-icon", { key: 'e806de9d5db9bf708d06ede1c4a958583f87b08b', id: "warning-indicator", icon: this.iconPack.warning, part: "warning-indicator" }), ' ', this.maxLengthBreached, " / ", this.maxLength, " ", this.t('chat.max_limit_warning'))), this.rateLimitBreached && (h("div", { key: '8c84906b5247775bf404e626f45f30b183fb9086', class: 'text-error breached' }, h("rtk-icon", { key: 'b2b646474d6702e4191ac9c50eef0d3c0efd0e4f', id: "warning-indicator", icon: this.iconPack.warning, part: "warning-indicator" }), ' ', this.t('chat.rate_limit_error'))), h("textarea", { key: 'f17233beb688a811ebe11f965a39c7df288b6ea5', ref: (el) => (this.$textArea = el), placeholder: this.placeholder, disabled: this.disabled, onInput: this.onInputHandler, onKeyDown: this.keyDownHandler, part: "chat-input", value: this.value })));
2457
+ return (h("div", { key: 'e5f7fa2bd4a2386ff5185001981477ccacf24556', class: "chat-input", part: "chat-input-container" }, this.maxLengthBreached > 0 && (h("div", { key: '4c06c853ddc7bebafe45fdb2e2c5c9e1c20021fe', class: 'text-error ' + (this.maxLengthBreached === this.maxLength ? 'breached' : '') }, h("rtk-icon", { key: '524037dc257f0aea206fbc3503d1fe1cb03449be', id: "warning-indicator", icon: this.iconPack.warning, part: "warning-indicator" }), ' ', this.maxLengthBreached, " / ", this.maxLength, " ", this.t('chat.max_limit_warning'))), this.rateLimitBreached && (h("div", { key: 'cf975664f367f2621593239ab1cf2e73f5acdb45', class: 'text-error breached' }, h("rtk-icon", { key: '70a6555f1fa9752f91951181b46e0ed0e7eb8679', id: "warning-indicator", icon: this.iconPack.warning, part: "warning-indicator" }), ' ', this.t('chat.rate_limit_error'))), h("textarea", { key: '7fc7280dd143cd701d5037e04c2b36c3ea8ec023', ref: (el) => (this.$textArea = el), placeholder: this.placeholder, disabled: this.disabled, onInput: this.onInputHandler, onKeyDown: this.keyDownHandler, part: "chat-input", value: this.value })));
2448
2458
  }
2449
2459
  };
2450
2460
  __decorate([
@@ -2465,7 +2475,7 @@ const RtkTextMessageView = class {
2465
2475
  this.isMarkdown = false;
2466
2476
  }
2467
2477
  render() {
2468
- return (h("p", { key: 'a52466b9a67706f84af1fc84c9504b028af8b082', class: { text: true, emoji: hasOnlyEmojis(this.text) } }, this.isMarkdown ? h("rtk-markdown-view", { text: this.text }) : this.text));
2478
+ return (h("p", { key: 'b4cbabb44d32f96a23cd72f108d6a36b05491c97', class: { text: true, emoji: hasOnlyEmojis(this.text) } }, this.isMarkdown ? h("rtk-markdown-view", { text: this.text }) : this.text));
2469
2479
  }
2470
2480
  };
2471
2481
  RtkTextMessageView.style = RtkTextMessageViewStyle0;
@@ -2571,7 +2581,7 @@ const RtkMenu = class {
2571
2581
  });
2572
2582
  }
2573
2583
  render() {
2574
- return (h(Host, { key: '502a8095ff2d516209a343d9fd9d6869757bf68b' }, h("span", { key: '18089635a87113958cb9ff8f3f5f5a44a32456e8', part: "trigger", id: "trigger", ref: (el) => (this.triggerEl = el) }, h("slot", { key: '5a31f0ab6825d8fc822afbb2a55604b5dd306b1c' })), h("div", { key: '8d2859fcdda1429d4527659ff5f7127f6e6fb4d2', part: "tooltip", class: "tooltip", id: "tooltip", role: "tooltip", ref: (el) => (this.tooltipEl = el) }, h("div", { key: '21ee9c44389decfac5bb43a3182ea645b237900d', id: "arrow", ref: (el) => (this.arrowEl = el), part: "arrow" }), this.label, h("slot", { key: '43d0841146bc003133e1b6747fae4a676f9b5324', name: "tooltip" }))));
2584
+ return (h(Host, { key: '5278137bc9b99d9fe9ffeb0fc30bd887d600494d' }, h("span", { key: 'cbefda068a15340dad76668c3696a10bd94cb8e9', part: "trigger", id: "trigger", ref: (el) => (this.triggerEl = el) }, h("slot", { key: 'f160cf29ece64145e795a9a11459bd458482c446' })), h("div", { key: '1056b2bbc8cbacd3c32280d334d9f703a578b5ef', part: "tooltip", class: "tooltip", id: "tooltip", role: "tooltip", ref: (el) => (this.tooltipEl = el) }, h("div", { key: '6c6816fa1b18d49fa22ab6ffb600aaa23c5b9ec5', id: "arrow", ref: (el) => (this.arrowEl = el), part: "arrow" }), this.label, h("slot", { key: '3c2d3425b2e8b4d810de2ce40394491c4698aede', name: "tooltip" }))));
2575
2585
  }
2576
2586
  static get watchers() { return {
2577
2587
  "open": ["openChanged"]