@cloudflare/realtimekit-ui 1.1.0-staging.1 → 1.1.0-staging.10

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 (644) hide show
  1. package/dist/browser.js +1 -1
  2. package/dist/cjs/{TextMessage-7bb3e1fd.js → TextMessage-1dc6f8b9.js} +1 -1
  3. package/dist/cjs/{chat-717e517d.js → chat-2ae6f058.js} +1 -1
  4. package/dist/cjs/{config-8c9ac89a.js → config-0a88d50b.js} +2 -2
  5. package/dist/cjs/{debounce-a3e0d9e7.js → debounce-b06b27ca.js} +1 -1
  6. package/dist/cjs/{index-8d07e125.js → index-e4244d7d.js} +1 -1
  7. package/dist/cjs/index.cjs.js +6 -5
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/{merge-73e2770b.js → merge-c46cfa17.js} +1 -1
  10. package/dist/cjs/{notification-567fe887.js → notification-f3750b61.js} +1 -1
  11. package/dist/cjs/realtimekit-ui.cjs.js +1 -1
  12. package/dist/cjs/rtk-ai-toggle.cjs.entry.js +2 -2
  13. package/dist/cjs/rtk-ai-transcriptions.cjs.entry.js +3 -3
  14. package/dist/cjs/rtk-ai.cjs.entry.js +2 -2
  15. package/dist/cjs/rtk-audio-grid.cjs.entry.js +3 -3
  16. package/dist/cjs/rtk-audio-tile.cjs.entry.js +2 -2
  17. package/dist/cjs/rtk-audio-visualizer_4.cjs.entry.js +3 -3
  18. package/dist/cjs/rtk-avatar_24.cjs.entry.js +430 -301
  19. package/dist/cjs/rtk-breakout-room-manager_3.cjs.entry.js +6 -6
  20. package/dist/cjs/rtk-breakout-rooms-manager_9.cjs.entry.js +11 -11
  21. package/dist/cjs/rtk-breakout-rooms-toggle.cjs.entry.js +2 -2
  22. package/dist/cjs/rtk-camera-selector_2.cjs.entry.js +2 -2
  23. package/dist/cjs/rtk-camera-toggle.cjs.entry.js +2 -2
  24. package/dist/cjs/rtk-caption-toggle.cjs.entry.js +2 -2
  25. package/dist/cjs/rtk-channel-creator.cjs.entry.js +4 -4
  26. package/dist/cjs/rtk-channel-details.cjs.entry.js +3 -3
  27. package/dist/cjs/rtk-channel-header.cjs.entry.js +2 -2
  28. package/dist/cjs/rtk-channel-selector-ui.cjs.entry.js +6 -6
  29. package/dist/cjs/rtk-chat-composer-ui.cjs.entry.js +3 -3
  30. package/dist/cjs/rtk-chat-message.cjs.entry.js +4 -4
  31. package/dist/cjs/rtk-chat-messages-ui.cjs.entry.js +5 -5
  32. package/dist/cjs/rtk-chat-search-results.cjs.entry.js +3 -3
  33. package/dist/cjs/rtk-chat-selector-ui.cjs.entry.js +3 -3
  34. package/dist/cjs/rtk-chat-toggle.cjs.entry.js +30 -25
  35. package/dist/cjs/rtk-clock.cjs.entry.js +5 -5
  36. package/dist/cjs/rtk-controlbar-button.cjs.entry.js +3 -3
  37. package/dist/cjs/rtk-controlbar.cjs.entry.js +3 -3
  38. package/dist/cjs/rtk-debugger-audio_4.cjs.entry.js +2 -2
  39. package/dist/cjs/rtk-debugger-toggle.cjs.entry.js +3 -3
  40. package/dist/cjs/rtk-dialog-manager.cjs.entry.js +2 -2
  41. package/dist/cjs/rtk-dialog.cjs.entry.js +2 -2
  42. package/dist/cjs/rtk-ended-screen.cjs.entry.js +2 -2
  43. package/dist/cjs/rtk-file-dropzone.cjs.entry.js +3 -3
  44. package/dist/cjs/rtk-file-message_3.cjs.entry.js +12 -12
  45. package/dist/cjs/rtk-fullscreen-toggle.cjs.entry.js +2 -2
  46. package/dist/cjs/rtk-grid-pagination.cjs.entry.js +2 -2
  47. package/dist/cjs/rtk-grid.cjs.entry.js +2 -2
  48. package/dist/cjs/rtk-header.cjs.entry.js +3 -3
  49. package/dist/cjs/rtk-idle-screen.cjs.entry.js +3 -3
  50. package/dist/cjs/rtk-image-viewer.cjs.entry.js +3 -3
  51. package/dist/cjs/rtk-information-tooltip.cjs.entry.js +3 -3
  52. package/dist/cjs/rtk-leave-button.cjs.entry.js +3 -3
  53. package/dist/cjs/rtk-livestream-indicator_3.cjs.entry.js +2 -2
  54. package/dist/cjs/rtk-livestream-toggle.cjs.entry.js +2 -2
  55. package/dist/cjs/rtk-logo.cjs.entry.js +2 -2
  56. package/dist/cjs/rtk-meeting-title.cjs.entry.js +2 -2
  57. package/dist/cjs/rtk-message-list-view.cjs.entry.js +6 -6
  58. package/dist/cjs/rtk-mic-toggle.cjs.entry.js +2 -2
  59. package/dist/cjs/rtk-mixed-grid.cjs.entry.js +2 -2
  60. package/dist/cjs/rtk-more-toggle.cjs.entry.js +4 -4
  61. package/dist/cjs/rtk-mute-all-button.cjs.entry.js +2 -2
  62. package/dist/cjs/rtk-name-tag.cjs.entry.js +3 -3
  63. package/dist/cjs/rtk-network-indicator.cjs.entry.js +2 -2
  64. package/dist/cjs/rtk-notification.cjs.entry.js +6 -6
  65. package/dist/cjs/rtk-notifications.cjs.entry.js +8 -5
  66. package/dist/cjs/rtk-participant-count.cjs.entry.js +2 -2
  67. package/dist/cjs/rtk-participant-setup.cjs.entry.js +4 -4
  68. package/dist/cjs/rtk-participant_2.cjs.entry.js +17 -17
  69. package/dist/cjs/rtk-participants-audio.cjs.entry.js +3 -3
  70. package/dist/cjs/rtk-participants-stage-list_4.cjs.entry.js +3 -3
  71. package/dist/cjs/rtk-participants-toggle.cjs.entry.js +3 -3
  72. package/dist/cjs/rtk-participants.cjs.entry.js +3 -3
  73. package/dist/cjs/rtk-pip-toggle.cjs.entry.js +2 -2
  74. package/dist/cjs/rtk-plugin-main_2.cjs.entry.js +3 -3
  75. package/dist/cjs/rtk-plugins-toggle.cjs.entry.js +3 -3
  76. package/dist/cjs/rtk-plugins_2.cjs.entry.js +6 -6
  77. package/dist/cjs/rtk-poll_2.cjs.entry.js +5 -5
  78. package/dist/cjs/rtk-polls-toggle.cjs.entry.js +3 -3
  79. package/dist/cjs/rtk-recording-indicator.cjs.entry.js +3 -3
  80. package/dist/cjs/rtk-recording-toggle.cjs.entry.js +2 -2
  81. package/dist/cjs/rtk-screen-share-toggle.cjs.entry.js +2 -2
  82. package/dist/cjs/rtk-screenshare-view.cjs.entry.js +7 -7
  83. package/dist/cjs/rtk-settings-audio_2.cjs.entry.js +2 -2
  84. package/dist/cjs/rtk-settings-toggle.cjs.entry.js +3 -3
  85. package/dist/cjs/rtk-settings.cjs.entry.js +2 -2
  86. package/dist/cjs/rtk-setup-screen.cjs.entry.js +2 -2
  87. package/dist/cjs/rtk-sidebar-ui.cjs.entry.js +4 -4
  88. package/dist/cjs/rtk-sidebar.cjs.entry.js +3 -3
  89. package/dist/cjs/rtk-simple-grid.cjs.entry.js +2 -2
  90. package/dist/cjs/rtk-spotlight-grid.cjs.entry.js +4 -4
  91. package/dist/cjs/rtk-spotlight-indicator.cjs.entry.js +2 -2
  92. package/dist/cjs/rtk-stage-toggle.cjs.entry.js +2 -2
  93. package/dist/cjs/rtk-stage.cjs.entry.js +3 -3
  94. package/dist/cjs/rtk-transcript.cjs.entry.js +3 -3
  95. package/dist/cjs/rtk-transcripts.cjs.entry.js +2 -2
  96. package/dist/cjs/rtk-ui-provider.cjs.entry.js +13 -3
  97. package/dist/cjs/rtk-waiting-screen.cjs.entry.js +3 -3
  98. package/dist/cjs/{sidebar-2ad915b1.js → sidebar-0eb1e4ef.js} +1 -1
  99. package/dist/cjs/{ui-store-1cb28da8.js → ui-store-6c2d680f.js} +11 -2
  100. package/dist/collection/components/rtk-ai-transcriptions/rtk-ai-transcriptions.js +1 -1
  101. package/dist/collection/components/rtk-audio-grid/rtk-audio-grid.js +1 -1
  102. package/dist/collection/components/rtk-avatar/rtk-avatar.js +1 -1
  103. package/dist/collection/components/rtk-breakout-room-participants/rtk-breakout-room-participants.js +2 -2
  104. package/dist/collection/components/rtk-broadcast-message-modal/rtk-broadcast-message-modal.js +2 -2
  105. package/dist/collection/components/rtk-channel-creator/rtk-channel-creator.js +2 -2
  106. package/dist/collection/components/rtk-channel-details/rtk-channel-details.js +1 -1
  107. package/dist/collection/components/rtk-channel-selector-ui/rtk-channel-selector-ui.js +2 -2
  108. package/dist/collection/components/rtk-channel-selector-view/rtk-channel-selector-view.css +29 -29
  109. package/dist/collection/components/rtk-channel-selector-view/rtk-channel-selector-view.js +4 -4
  110. package/dist/collection/components/rtk-chat/rtk-chat.css +47 -8
  111. package/dist/collection/components/rtk-chat/rtk-chat.js +98 -13
  112. package/dist/collection/components/rtk-chat-composer-view/rtk-chat-composer-view.js +28 -15
  113. package/dist/collection/components/rtk-chat-message/rtk-chat-message.js +2 -2
  114. package/dist/collection/components/rtk-chat-messages-ui/rtk-chat-messages-ui.js +3 -3
  115. package/dist/collection/components/rtk-chat-messages-ui-paginated/rtk-chat-messages-ui-paginated.js +37 -17
  116. package/dist/collection/components/rtk-chat-search-results/rtk-chat-search-results.js +1 -1
  117. package/dist/collection/components/rtk-chat-toggle/rtk-chat-toggle.css +1 -1
  118. package/dist/collection/components/rtk-chat-toggle/rtk-chat-toggle.js +27 -26
  119. package/dist/collection/components/rtk-clock/rtk-clock.js +3 -3
  120. package/dist/collection/components/rtk-confirmation-modal/rtk-confirmation-modal.js +1 -1
  121. package/dist/collection/components/rtk-controlbar/rtk-controlbar.js +1 -1
  122. package/dist/collection/components/rtk-controlbar-button/rtk-controlbar-button.js +1 -1
  123. package/dist/collection/components/rtk-counter/rtk-counter.js +2 -2
  124. package/dist/collection/components/rtk-debugger-toggle/rtk-debugger-toggle.js +1 -1
  125. package/dist/collection/components/rtk-draft-attachment-view/rtk-draft-attachment-view.js +1 -1
  126. package/dist/collection/components/rtk-emoji-picker/rtk-emoji-picker.js +1 -1
  127. package/dist/collection/components/rtk-emoji-picker-button/rtk-emoji-picker-button.js +1 -1
  128. package/dist/collection/components/rtk-file-dropzone/rtk-file-dropzone.js +1 -1
  129. package/dist/collection/components/rtk-file-message/rtk-file-message.js +2 -2
  130. package/dist/collection/components/rtk-file-message-view/rtk-file-message-view.js +1 -1
  131. package/dist/collection/components/rtk-file-picker-button/rtk-file-picker-button.js +1 -1
  132. package/dist/collection/components/rtk-header/rtk-header.js +1 -1
  133. package/dist/collection/components/rtk-icon/rtk-icon.js +1 -1
  134. package/dist/collection/components/rtk-idle-screen/rtk-idle-screen.js +1 -1
  135. package/dist/collection/components/rtk-image-message/rtk-image-message.js +4 -4
  136. package/dist/collection/components/rtk-image-message-view/rtk-image-message-view.js +3 -3
  137. package/dist/collection/components/rtk-image-viewer/rtk-image-viewer.js +1 -1
  138. package/dist/collection/components/rtk-information-tooltip/rtk-information-tooltip.js +1 -1
  139. package/dist/collection/components/rtk-join-stage/rtk-join-stage.js +1 -1
  140. package/dist/collection/components/rtk-leave-button/rtk-leave-button.js +1 -1
  141. package/dist/collection/components/rtk-leave-meeting/rtk-leave-meeting.js +2 -2
  142. package/dist/collection/components/rtk-markdown-view/rtk-markdown-view.js +1 -1
  143. package/dist/collection/components/rtk-meeting/rtk-meeting.js +37 -0
  144. package/dist/collection/components/rtk-menu/rtk-menu.js +2 -2
  145. package/dist/collection/components/rtk-menu-item/rtk-menu-item.css +6 -1
  146. package/dist/collection/components/rtk-menu-item/rtk-menu-item.js +23 -1
  147. package/dist/collection/components/rtk-menu-list/rtk-menu-list.css +15 -4
  148. package/dist/collection/components/rtk-menu-list/rtk-menu-list.js +23 -1
  149. package/dist/collection/components/rtk-message-list-view/rtk-message-list-view.js +3 -3
  150. package/dist/collection/components/rtk-message-view/rtk-message-view.css +30 -22
  151. package/dist/collection/components/rtk-message-view/rtk-message-view.js +72 -2
  152. package/dist/collection/components/rtk-more-toggle/rtk-more-toggle.js +2 -2
  153. package/dist/collection/components/rtk-mute-all-confirmation/rtk-mute-all-confirmation.js +1 -1
  154. package/dist/collection/components/rtk-name-tag/rtk-name-tag.js +1 -1
  155. package/dist/collection/components/rtk-notification/rtk-notification.js +2 -2
  156. package/dist/collection/components/rtk-notifications/rtk-notifications.js +4 -1
  157. package/dist/collection/components/rtk-overlay-modal/rtk-overlay-modal.js +1 -1
  158. package/dist/collection/components/rtk-paginated-list/rtk-paginated-list.css +5 -5
  159. package/dist/collection/components/rtk-paginated-list/rtk-paginated-list.js +327 -264
  160. package/dist/collection/components/rtk-participant/rtk-participant.js +12 -12
  161. package/dist/collection/components/rtk-participant-setup/rtk-participant-setup.js +2 -2
  162. package/dist/collection/components/rtk-participants-audio/rtk-participants-audio.js +1 -1
  163. package/dist/collection/components/rtk-participants-stage-list/rtk-participants-stage-list.js +1 -1
  164. package/dist/collection/components/rtk-permissions-message/rtk-permissions-message.js +1 -1
  165. package/dist/collection/components/rtk-plugins/rtk-plugins.js +1 -1
  166. package/dist/collection/components/rtk-poll/rtk-poll.js +1 -1
  167. package/dist/collection/components/rtk-poll-form/rtk-poll-form.js +2 -2
  168. package/dist/collection/components/rtk-polls/rtk-polls.js +3 -3
  169. package/dist/collection/components/rtk-recording-indicator/rtk-recording-indicator.js +1 -1
  170. package/dist/collection/components/rtk-screenshare-view/rtk-screenshare-view.js +5 -5
  171. package/dist/collection/components/rtk-settings-toggle/rtk-settings-toggle.js +1 -1
  172. package/dist/collection/components/rtk-sidebar-ui/rtk-sidebar-ui.js +2 -2
  173. package/dist/collection/components/rtk-spinner/rtk-spinner.js +1 -1
  174. package/dist/collection/components/rtk-spotlight-grid/rtk-spotlight-grid.js +2 -2
  175. package/dist/collection/components/rtk-stage/rtk-stage.js +1 -1
  176. package/dist/collection/components/rtk-switch/rtk-switch.js +1 -1
  177. package/dist/collection/components/rtk-tab-bar/rtk-tab-bar.js +1 -1
  178. package/dist/collection/components/rtk-text-composer-view/rtk-text-composer-view.js +1 -1
  179. package/dist/collection/components/rtk-text-message/rtk-text-message.js +2 -2
  180. package/dist/collection/components/rtk-text-message-view/rtk-text-message-view.js +1 -1
  181. package/dist/collection/components/rtk-tooltip/rtk-tooltip.js +1 -1
  182. package/dist/collection/components/rtk-transcript/rtk-transcript.js +1 -1
  183. package/dist/collection/components/rtk-ui-provider/rtk-ui-provider.js +37 -1
  184. package/dist/collection/components/rtk-virtualized-list/rtk-virtualized-participant-list.js +2 -2
  185. package/dist/collection/components/rtk-waiting-screen/rtk-waiting-screen.js +1 -1
  186. package/dist/collection/exports.js +2 -1
  187. package/dist/collection/lib/overrides.js +6 -0
  188. package/dist/collection/utils/flags.js +0 -1
  189. package/dist/collection/utils/sync-with-store/ui-store.js +4 -1
  190. package/dist/components/index.js +6 -6
  191. package/dist/components/{p-6f340109.js → p-05df465d.js} +1 -1
  192. package/dist/components/{p-9e87b2c9.js → p-0a31ef52.js} +2 -2
  193. package/dist/components/{p-618864a0.js → p-107e55c1.js} +3 -3
  194. package/dist/components/{p-5f26bba3.js → p-193d8051.js} +2 -2
  195. package/dist/components/{p-d3de8b85.js → p-19b037c5.js} +4 -4
  196. package/dist/components/{p-8d25843a.js → p-1a9e3806.js} +3 -3
  197. package/dist/components/{p-82f8c924.js → p-1afc54bb.js} +3 -3
  198. package/dist/components/{p-afe77b50.js → p-1da807a2.js} +3 -3
  199. package/dist/components/{p-2f08d7eb.js → p-210862ae.js} +98 -37
  200. package/dist/components/{p-abe1dbe6.js → p-2309fb19.js} +4 -4
  201. package/dist/components/{p-f8f5cb31.js → p-2447a26f.js} +4 -4
  202. package/dist/components/{p-63ef7ea4.js → p-282e8e83.js} +7 -7
  203. package/dist/components/{p-ee98bbaf.js → p-33be3c19.js} +13 -13
  204. package/dist/components/{p-adf73364.js → p-33e73313.js} +6 -6
  205. package/dist/components/{p-121e073d.js → p-35e93724.js} +2 -2
  206. package/dist/components/{p-bb8f2597.js → p-395ef9c8.js} +7 -7
  207. package/dist/components/{p-f47894a6.js → p-3972098e.js} +21 -27
  208. package/dist/components/{p-10ef077c.js → p-39e8b34a.js} +3 -3
  209. package/dist/components/{p-e81fc1e8.js → p-3e58e0f3.js} +3 -3
  210. package/dist/components/{p-0b4e526c.js → p-43bf8953.js} +4 -4
  211. package/dist/components/p-44a203bd.js +409 -0
  212. package/dist/components/{p-190db142.js → p-44c32349.js} +8 -8
  213. package/dist/components/{p-2d08ab28.js → p-45b4f6a1.js} +4 -4
  214. package/dist/components/{p-9889bee5.js → p-46d99dd9.js} +4 -4
  215. package/dist/components/{p-65cd2fe3.js → p-524d7900.js} +5 -5
  216. package/dist/components/{p-0d7bf41b.js → p-5476e3f3.js} +4 -4
  217. package/dist/components/{p-914563e7.js → p-586482a8.js} +6 -6
  218. package/dist/components/{p-fd68a52b.js → p-5f1b84f7.js} +9 -9
  219. package/dist/components/{p-d06d1eac.js → p-600579a6.js} +3 -3
  220. package/dist/components/{p-6f272732.js → p-6392204c.js} +9 -9
  221. package/dist/components/{p-a94b2e67.js → p-6739a399.js} +2 -2
  222. package/dist/components/{p-f7eb9c47.js → p-6c02b0d0.js} +6 -6
  223. package/dist/components/{p-c515acba.js → p-6f361314.js} +3 -3
  224. package/dist/components/{p-47c25f64.js → p-6f7c46d2.js} +1 -1
  225. package/dist/components/{p-84e5b453.js → p-6f8d2043.js} +2 -2
  226. package/dist/components/{p-080acf18.js → p-7148ec6a.js} +7 -4
  227. package/dist/components/{p-33a87325.js → p-72fffe3e.js} +3 -3
  228. package/dist/components/{p-3b29dda1.js → p-73baf5ba.js} +1 -1
  229. package/dist/components/{p-2f82e0b0.js → p-74356882.js} +8 -8
  230. package/dist/components/{p-fe911889.js → p-7a27fdb5.js} +20 -11
  231. package/dist/components/{p-b011763d.js → p-7b6356e2.js} +4 -4
  232. package/dist/components/{p-5c92df32.js → p-7bde2b2d.js} +6 -6
  233. package/dist/components/{p-6c2cfa0d.js → p-7c8096c2.js} +5 -5
  234. package/dist/components/{p-a6296b02.js → p-819cb785.js} +7 -4
  235. package/dist/components/{p-6756b222.js → p-851b90a6.js} +3 -3
  236. package/dist/components/{p-e4a080a5.js → p-89151c7a.js} +4 -4
  237. package/dist/components/{p-244cbe7b.js → p-89eb65a9.js} +2 -2
  238. package/dist/components/{p-c3621e10.js → p-92729e09.js} +7 -7
  239. package/dist/components/{p-cf503999.js → p-977f9875.js} +5 -5
  240. package/dist/components/{p-f4e75ea9.js → p-9bdc24b8.js} +5 -5
  241. package/dist/components/{p-188bfe87.js → p-abdff498.js} +9 -9
  242. package/dist/components/{p-78b61cce.js → p-ad873f2d.js} +1 -1
  243. package/dist/components/{p-d107e9f4.js → p-b6869c32.js} +4 -4
  244. package/dist/components/{p-395d7140.js → p-b76e3950.js} +5 -5
  245. package/dist/components/{p-102b6df8.js → p-c05530c8.js} +2 -2
  246. package/dist/components/p-c78c26b1.js +203 -0
  247. package/dist/components/{p-88bef213.js → p-cf8f725b.js} +1 -1
  248. package/dist/components/{p-c078ae06.js → p-d188f58b.js} +3 -3
  249. package/dist/components/{p-2e282643.js → p-d9f6db4f.js} +5 -5
  250. package/dist/components/{p-51de7af3.js → p-da87cc71.js} +1 -1
  251. package/dist/components/{p-0d582365.js → p-dc3143c0.js} +2 -2
  252. package/dist/components/{p-4d582a90.js → p-dd89aff2.js} +6 -6
  253. package/dist/components/{p-7481511c.js → p-dfb42075.js} +3 -3
  254. package/dist/components/{p-e675729a.js → p-e375b50d.js} +5 -5
  255. package/dist/components/{p-0a35a909.js → p-e443d803.js} +4 -4
  256. package/dist/components/{p-a6f2b402.js → p-e4888ccc.js} +31 -31
  257. package/dist/components/{p-a10b9faa.js → p-e552dc59.js} +3 -3
  258. package/dist/components/{p-55501201.js → p-e57e8041.js} +5 -5
  259. package/dist/components/{p-b34865c7.js → p-e64e3cec.js} +5 -5
  260. package/dist/components/{p-3da4880c.js → p-e72a0f16.js} +5 -5
  261. package/dist/components/{p-7fc0dc2f.js → p-e847fee9.js} +11 -3
  262. package/dist/components/{p-b882f4a1.js → p-ecb016da.js} +5 -5
  263. package/dist/components/{p-a4a5ff5a.js → p-edd12f2f.js} +6 -6
  264. package/dist/components/{p-563c785d.js → p-eeb37b16.js} +3 -3
  265. package/dist/components/{p-dbfc9151.js → p-f0e4633e.js} +4 -4
  266. package/dist/components/{p-a29c01fc.js → p-f6c2e822.js} +3 -3
  267. package/dist/components/{p-20290b0b.js → p-f7bd10f1.js} +5 -5
  268. package/dist/components/{p-e8df7ac5.js → p-fa5aba68.js} +19 -19
  269. package/dist/components/{p-488d88a8.js → p-fb7666ce.js} +5 -5
  270. package/dist/components/{p-fa8f6b4a.js → p-fb836f65.js} +1 -1
  271. package/dist/components/{p-e6710b76.js → p-fb900e8f.js} +4 -4
  272. package/dist/components/{p-f7430e46.js → p-fefc57f9.js} +6 -6
  273. package/dist/components/rtk-ai-toggle.js +5 -5
  274. package/dist/components/rtk-ai-transcriptions.js +1 -1
  275. package/dist/components/rtk-ai.js +4 -4
  276. package/dist/components/rtk-audio-grid.js +3 -3
  277. package/dist/components/rtk-audio-tile.js +6 -6
  278. package/dist/components/rtk-audio-visualizer.js +1 -1
  279. package/dist/components/rtk-avatar.js +1 -1
  280. package/dist/components/rtk-breakout-room-manager.js +1 -1
  281. package/dist/components/rtk-breakout-room-participants.js +1 -1
  282. package/dist/components/rtk-breakout-rooms-manager.js +1 -1
  283. package/dist/components/rtk-breakout-rooms-toggle.js +5 -5
  284. package/dist/components/rtk-broadcast-message-modal.js +1 -1
  285. package/dist/components/rtk-camera-selector.js +1 -1
  286. package/dist/components/rtk-camera-toggle.js +6 -6
  287. package/dist/components/rtk-caption-toggle.js +5 -5
  288. package/dist/components/rtk-channel-creator.js +7 -7
  289. package/dist/components/rtk-channel-details.js +1 -1
  290. package/dist/components/rtk-channel-header.js +8 -8
  291. package/dist/components/rtk-channel-selector-ui.js +7 -7
  292. package/dist/components/rtk-channel-selector-view.js +1 -1
  293. package/dist/components/rtk-chat-composer-ui.js +7 -7
  294. package/dist/components/rtk-chat-composer-view.js +1 -1
  295. package/dist/components/rtk-chat-message.js +1 -1
  296. package/dist/components/rtk-chat-messages-ui-paginated.js +1 -1
  297. package/dist/components/rtk-chat-messages-ui.js +17 -17
  298. package/dist/components/rtk-chat-search-results.js +14 -14
  299. package/dist/components/rtk-chat-selector-ui.js +3 -3
  300. package/dist/components/rtk-chat-toggle.js +34 -30
  301. package/dist/components/rtk-chat.js +1 -1
  302. package/dist/components/rtk-clock.js +6 -6
  303. package/dist/components/rtk-confirmation-modal.js +1 -1
  304. package/dist/components/rtk-controlbar-button.js +1 -1
  305. package/dist/components/rtk-controlbar.js +3 -3
  306. package/dist/components/rtk-counter.js +1 -1
  307. package/dist/components/rtk-debugger-audio.js +1 -1
  308. package/dist/components/rtk-debugger-screenshare.js +1 -1
  309. package/dist/components/rtk-debugger-system.js +1 -1
  310. package/dist/components/rtk-debugger-toggle.js +6 -6
  311. package/dist/components/rtk-debugger-video.js +1 -1
  312. package/dist/components/rtk-debugger.js +1 -1
  313. package/dist/components/rtk-dialog-manager.js +23 -23
  314. package/dist/components/rtk-dialog.js +1 -1
  315. package/dist/components/rtk-draft-attachment-view.js +1 -1
  316. package/dist/components/rtk-emoji-picker-button.js +1 -1
  317. package/dist/components/rtk-emoji-picker.js +1 -1
  318. package/dist/components/rtk-ended-screen.js +4 -4
  319. package/dist/components/rtk-file-dropzone.js +4 -4
  320. package/dist/components/rtk-file-message-view.js +1 -1
  321. package/dist/components/rtk-file-message.js +1 -1
  322. package/dist/components/rtk-file-picker-button.js +1 -1
  323. package/dist/components/rtk-fullscreen-toggle.js +1 -1
  324. package/dist/components/rtk-grid-pagination.js +4 -4
  325. package/dist/components/rtk-grid.js +9 -9
  326. package/dist/components/rtk-header.js +3 -3
  327. package/dist/components/rtk-icon.js +1 -1
  328. package/dist/components/rtk-idle-screen.js +6 -6
  329. package/dist/components/rtk-image-message-view.js +1 -1
  330. package/dist/components/rtk-image-message.js +1 -1
  331. package/dist/components/rtk-image-viewer.js +4 -4
  332. package/dist/components/rtk-information-tooltip.js +4 -4
  333. package/dist/components/rtk-join-stage.js +1 -1
  334. package/dist/components/rtk-leave-button.js +6 -6
  335. package/dist/components/rtk-leave-meeting.js +1 -1
  336. package/dist/components/rtk-livestream-indicator.js +1 -1
  337. package/dist/components/rtk-livestream-player.js +1 -1
  338. package/dist/components/rtk-livestream-toggle.js +5 -5
  339. package/dist/components/rtk-logo.js +1 -1
  340. package/dist/components/rtk-markdown-view.js +1 -1
  341. package/dist/components/rtk-meeting-title.js +3 -3
  342. package/dist/components/rtk-meeting.js +40 -28
  343. package/dist/components/rtk-menu-item.js +1 -1
  344. package/dist/components/rtk-menu-list.js +1 -1
  345. package/dist/components/rtk-menu.js +1 -1
  346. package/dist/components/rtk-message-list-view.js +7 -7
  347. package/dist/components/rtk-message-view.js +1 -1
  348. package/dist/components/rtk-mic-toggle.js +6 -6
  349. package/dist/components/rtk-microphone-selector.js +1 -1
  350. package/dist/components/rtk-mixed-grid.js +7 -7
  351. package/dist/components/rtk-more-toggle.js +7 -7
  352. package/dist/components/rtk-mute-all-button.js +6 -6
  353. package/dist/components/rtk-mute-all-confirmation.js +1 -1
  354. package/dist/components/rtk-name-tag.js +1 -1
  355. package/dist/components/rtk-network-indicator.js +3 -3
  356. package/dist/components/rtk-notification.js +1 -1
  357. package/dist/components/rtk-notifications.js +9 -6
  358. package/dist/components/rtk-overlay-modal.js +1 -1
  359. package/dist/components/rtk-paginated-list.js +1 -1
  360. package/dist/components/rtk-participant-count.js +3 -3
  361. package/dist/components/rtk-participant-setup.js +4 -4
  362. package/dist/components/rtk-participant-tile.js +1 -1
  363. package/dist/components/rtk-participant.js +1 -1
  364. package/dist/components/rtk-participants-audio.js +5 -5
  365. package/dist/components/rtk-participants-stage-list.js +1 -1
  366. package/dist/components/rtk-participants-stage-queue.js +1 -1
  367. package/dist/components/rtk-participants-toggle.js +6 -6
  368. package/dist/components/rtk-participants-viewer-list.js +1 -1
  369. package/dist/components/rtk-participants-waiting-list.js +1 -1
  370. package/dist/components/rtk-participants.js +15 -15
  371. package/dist/components/rtk-permissions-message.js +1 -1
  372. package/dist/components/rtk-pip-toggle.js +5 -5
  373. package/dist/components/rtk-plugin-main.js +1 -1
  374. package/dist/components/rtk-plugins-toggle.js +6 -6
  375. package/dist/components/rtk-plugins.js +1 -1
  376. package/dist/components/rtk-poll-form.js +1 -1
  377. package/dist/components/rtk-poll.js +1 -1
  378. package/dist/components/rtk-polls-toggle.js +6 -6
  379. package/dist/components/rtk-polls.js +1 -1
  380. package/dist/components/rtk-recording-indicator.js +4 -4
  381. package/dist/components/rtk-recording-toggle.js +5 -5
  382. package/dist/components/rtk-screen-share-toggle.js +6 -6
  383. package/dist/components/rtk-screenshare-view.js +9 -9
  384. package/dist/components/rtk-settings-audio.js +1 -1
  385. package/dist/components/rtk-settings-toggle.js +6 -6
  386. package/dist/components/rtk-settings-video.js +1 -1
  387. package/dist/components/rtk-settings.js +11 -11
  388. package/dist/components/rtk-setup-screen.js +7 -7
  389. package/dist/components/rtk-sidebar-ui.js +1 -1
  390. package/dist/components/rtk-sidebar.js +10 -10
  391. package/dist/components/rtk-simple-grid.js +2 -2
  392. package/dist/components/rtk-speaker-selector.js +1 -1
  393. package/dist/components/rtk-spinner.js +1 -1
  394. package/dist/components/rtk-spotlight-grid.js +4 -4
  395. package/dist/components/rtk-spotlight-indicator.js +1 -1
  396. package/dist/components/rtk-stage-toggle.js +6 -6
  397. package/dist/components/rtk-stage.js +3 -3
  398. package/dist/components/rtk-switch.js +1 -1
  399. package/dist/components/rtk-tab-bar.js +1 -1
  400. package/dist/components/rtk-text-composer-view.js +1 -1
  401. package/dist/components/rtk-text-message-view.js +1 -1
  402. package/dist/components/rtk-text-message.js +1 -1
  403. package/dist/components/rtk-tooltip.js +1 -1
  404. package/dist/components/rtk-transcript.js +1 -1
  405. package/dist/components/rtk-transcripts.js +3 -3
  406. package/dist/components/rtk-ui-provider.js +17 -5
  407. package/dist/components/rtk-viewer-count.js +1 -1
  408. package/dist/components/rtk-virtualized-participant-list.js +1 -1
  409. package/dist/components/rtk-waiting-screen.js +4 -4
  410. package/dist/docs/docs-components.json +372 -82
  411. package/dist/docs/docs-vscode.json +42 -1
  412. package/dist/esm/{TextMessage-ca92045e.js → TextMessage-0d8be8c5.js} +1 -1
  413. package/dist/esm/{chat-ff185374.js → chat-b2bea75f.js} +1 -1
  414. package/dist/esm/{config-e684aa4d.js → config-325caca3.js} +2 -2
  415. package/dist/esm/{debounce-3ea4df36.js → debounce-3139f9e3.js} +1 -1
  416. package/dist/esm/{index-e65afca5.js → index-6eb882e7.js} +1 -1
  417. package/dist/esm/index.js +7 -7
  418. package/dist/esm/loader.js +584 -428
  419. package/dist/esm/{merge-7ffc04b3.js → merge-bc2a0775.js} +1 -1
  420. package/dist/esm/{notification-78afaabf.js → notification-4beb1e0d.js} +1 -1
  421. package/dist/esm/realtimekit-ui.js +1 -1
  422. package/dist/esm/rtk-ai-toggle.entry.js +2 -2
  423. package/dist/esm/rtk-ai-transcriptions.entry.js +3 -3
  424. package/dist/esm/rtk-ai.entry.js +2 -2
  425. package/dist/esm/rtk-audio-grid.entry.js +3 -3
  426. package/dist/esm/rtk-audio-tile.entry.js +2 -2
  427. package/dist/esm/rtk-audio-visualizer_4.entry.js +3 -3
  428. package/dist/esm/rtk-avatar_24.entry.js +430 -301
  429. package/dist/esm/rtk-breakout-room-manager_3.entry.js +6 -6
  430. package/dist/esm/rtk-breakout-rooms-manager_9.entry.js +11 -11
  431. package/dist/esm/rtk-breakout-rooms-toggle.entry.js +2 -2
  432. package/dist/esm/rtk-camera-selector_2.entry.js +2 -2
  433. package/dist/esm/rtk-camera-toggle.entry.js +2 -2
  434. package/dist/esm/rtk-caption-toggle.entry.js +2 -2
  435. package/dist/esm/rtk-channel-creator.entry.js +4 -4
  436. package/dist/esm/rtk-channel-details.entry.js +3 -3
  437. package/dist/esm/rtk-channel-header.entry.js +2 -2
  438. package/dist/esm/rtk-channel-selector-ui.entry.js +6 -6
  439. package/dist/esm/rtk-chat-composer-ui.entry.js +3 -3
  440. package/dist/esm/rtk-chat-message.entry.js +4 -4
  441. package/dist/esm/rtk-chat-messages-ui.entry.js +5 -5
  442. package/dist/esm/rtk-chat-search-results.entry.js +3 -3
  443. package/dist/esm/rtk-chat-selector-ui.entry.js +3 -3
  444. package/dist/esm/rtk-chat-toggle.entry.js +30 -25
  445. package/dist/esm/rtk-clock.entry.js +5 -5
  446. package/dist/esm/rtk-controlbar-button.entry.js +3 -3
  447. package/dist/esm/rtk-controlbar.entry.js +3 -3
  448. package/dist/esm/rtk-debugger-audio_4.entry.js +2 -2
  449. package/dist/esm/rtk-debugger-toggle.entry.js +3 -3
  450. package/dist/esm/rtk-dialog-manager.entry.js +2 -2
  451. package/dist/esm/rtk-dialog.entry.js +2 -2
  452. package/dist/esm/rtk-ended-screen.entry.js +2 -2
  453. package/dist/esm/rtk-file-dropzone.entry.js +3 -3
  454. package/dist/esm/rtk-file-message_3.entry.js +12 -12
  455. package/dist/esm/rtk-fullscreen-toggle.entry.js +2 -2
  456. package/dist/esm/rtk-grid-pagination.entry.js +2 -2
  457. package/dist/esm/rtk-grid.entry.js +2 -2
  458. package/dist/esm/rtk-header.entry.js +3 -3
  459. package/dist/esm/rtk-idle-screen.entry.js +3 -3
  460. package/dist/esm/rtk-image-viewer.entry.js +3 -3
  461. package/dist/esm/rtk-information-tooltip.entry.js +3 -3
  462. package/dist/esm/rtk-leave-button.entry.js +3 -3
  463. package/dist/esm/rtk-livestream-indicator_3.entry.js +2 -2
  464. package/dist/esm/rtk-livestream-toggle.entry.js +2 -2
  465. package/dist/esm/rtk-logo.entry.js +2 -2
  466. package/dist/esm/rtk-meeting-title.entry.js +2 -2
  467. package/dist/esm/rtk-message-list-view.entry.js +6 -6
  468. package/dist/esm/rtk-mic-toggle.entry.js +2 -2
  469. package/dist/esm/rtk-mixed-grid.entry.js +2 -2
  470. package/dist/esm/rtk-more-toggle.entry.js +4 -4
  471. package/dist/esm/rtk-mute-all-button.entry.js +2 -2
  472. package/dist/esm/rtk-name-tag.entry.js +3 -3
  473. package/dist/esm/rtk-network-indicator.entry.js +2 -2
  474. package/dist/esm/rtk-notification.entry.js +6 -6
  475. package/dist/esm/rtk-notifications.entry.js +8 -5
  476. package/dist/esm/rtk-participant-count.entry.js +2 -2
  477. package/dist/esm/rtk-participant-setup.entry.js +4 -4
  478. package/dist/esm/rtk-participant_2.entry.js +17 -17
  479. package/dist/esm/rtk-participants-audio.entry.js +3 -3
  480. package/dist/esm/rtk-participants-stage-list_4.entry.js +3 -3
  481. package/dist/esm/rtk-participants-toggle.entry.js +3 -3
  482. package/dist/esm/rtk-participants.entry.js +3 -3
  483. package/dist/esm/rtk-pip-toggle.entry.js +2 -2
  484. package/dist/esm/rtk-plugin-main_2.entry.js +3 -3
  485. package/dist/esm/rtk-plugins-toggle.entry.js +3 -3
  486. package/dist/esm/rtk-plugins_2.entry.js +6 -6
  487. package/dist/esm/rtk-poll_2.entry.js +5 -5
  488. package/dist/esm/rtk-polls-toggle.entry.js +3 -3
  489. package/dist/esm/rtk-recording-indicator.entry.js +3 -3
  490. package/dist/esm/rtk-recording-toggle.entry.js +2 -2
  491. package/dist/esm/rtk-screen-share-toggle.entry.js +2 -2
  492. package/dist/esm/rtk-screenshare-view.entry.js +7 -7
  493. package/dist/esm/rtk-settings-audio_2.entry.js +2 -2
  494. package/dist/esm/rtk-settings-toggle.entry.js +3 -3
  495. package/dist/esm/rtk-settings.entry.js +2 -2
  496. package/dist/esm/rtk-setup-screen.entry.js +2 -2
  497. package/dist/esm/rtk-sidebar-ui.entry.js +4 -4
  498. package/dist/esm/rtk-sidebar.entry.js +3 -3
  499. package/dist/esm/rtk-simple-grid.entry.js +2 -2
  500. package/dist/esm/rtk-spotlight-grid.entry.js +4 -4
  501. package/dist/esm/rtk-spotlight-indicator.entry.js +2 -2
  502. package/dist/esm/rtk-stage-toggle.entry.js +2 -2
  503. package/dist/esm/rtk-stage.entry.js +3 -3
  504. package/dist/esm/rtk-transcript.entry.js +3 -3
  505. package/dist/esm/rtk-transcripts.entry.js +2 -2
  506. package/dist/esm/rtk-ui-provider.entry.js +13 -3
  507. package/dist/esm/rtk-waiting-screen.entry.js +3 -3
  508. package/dist/esm/{sidebar-030fff49.js → sidebar-376c9917.js} +1 -1
  509. package/dist/esm/{ui-store-9e486e1b.js → ui-store-12132d9c.js} +11 -3
  510. package/dist/realtimekit-ui/index.esm.js +1 -1
  511. package/dist/realtimekit-ui/{p-385fddbd.entry.js → p-00445029.entry.js} +1 -1
  512. package/dist/realtimekit-ui/{p-74e1b5a6.entry.js → p-05d1b9d5.entry.js} +1 -1
  513. package/dist/realtimekit-ui/{p-95f05e26.entry.js → p-0baa78d7.entry.js} +1 -1
  514. package/dist/realtimekit-ui/{p-12e4cb4a.js → p-11a469d9.js} +1 -1
  515. package/dist/realtimekit-ui/{p-8f512d69.entry.js → p-14569a57.entry.js} +1 -1
  516. package/dist/realtimekit-ui/{p-2b373e53.entry.js → p-1462cbd9.entry.js} +1 -1
  517. package/dist/realtimekit-ui/{p-2fc5ef84.entry.js → p-1669c53d.entry.js} +1 -1
  518. package/dist/realtimekit-ui/{p-b387e9a1.entry.js → p-1834416c.entry.js} +1 -1
  519. package/dist/realtimekit-ui/{p-0b8c47d9.entry.js → p-1fe6003b.entry.js} +1 -1
  520. package/dist/realtimekit-ui/p-21d4bb9c.entry.js +1 -0
  521. package/dist/realtimekit-ui/{p-61a53713.entry.js → p-2441260e.entry.js} +1 -1
  522. package/dist/realtimekit-ui/p-25c4d10f.js +1 -0
  523. package/dist/realtimekit-ui/{p-53ac3d30.entry.js → p-2b054928.entry.js} +1 -1
  524. package/dist/realtimekit-ui/{p-62e0a141.entry.js → p-30dcb4cc.entry.js} +1 -1
  525. package/dist/realtimekit-ui/p-322957ed.entry.js +1 -0
  526. package/dist/realtimekit-ui/{p-36c8dfa0.entry.js → p-323d1aa4.entry.js} +1 -1
  527. package/dist/realtimekit-ui/p-342b4926.entry.js +1 -0
  528. package/dist/realtimekit-ui/p-369648b9.entry.js +1 -0
  529. package/dist/realtimekit-ui/{p-4eba1baa.entry.js → p-3dd04263.entry.js} +1 -1
  530. package/dist/realtimekit-ui/{p-60a29b69.entry.js → p-3f4120cc.entry.js} +1 -1
  531. package/dist/realtimekit-ui/{p-3a325310.entry.js → p-426bf45e.entry.js} +1 -1
  532. package/dist/realtimekit-ui/{p-a9126c12.entry.js → p-43530cd3.entry.js} +1 -1
  533. package/dist/realtimekit-ui/p-44531a97.entry.js +1 -0
  534. package/dist/realtimekit-ui/p-4485414e.entry.js +1 -0
  535. package/dist/realtimekit-ui/p-44d69c6b.entry.js +1 -0
  536. package/dist/realtimekit-ui/p-45f90b95.js +1 -0
  537. package/dist/realtimekit-ui/{p-951a7b06.entry.js → p-48c87789.entry.js} +1 -1
  538. package/dist/realtimekit-ui/{p-949b2b6a.entry.js → p-4b33b435.entry.js} +1 -1
  539. package/dist/realtimekit-ui/{p-8b189438.entry.js → p-4b638184.entry.js} +1 -1
  540. package/dist/realtimekit-ui/{p-9ad2c746.entry.js → p-515a17ce.entry.js} +1 -1
  541. package/dist/realtimekit-ui/{p-7b999408.entry.js → p-532e1a53.entry.js} +1 -1
  542. package/dist/realtimekit-ui/{p-38f4773b.entry.js → p-53680d55.entry.js} +1 -1
  543. package/dist/realtimekit-ui/{p-5383fe87.entry.js → p-54a88fdf.entry.js} +1 -1
  544. package/dist/realtimekit-ui/{p-c7711712.entry.js → p-573187b4.entry.js} +1 -1
  545. package/dist/realtimekit-ui/{p-f5aa8af7.entry.js → p-5892c1e0.entry.js} +1 -1
  546. package/dist/realtimekit-ui/{p-54a31e02.entry.js → p-5b00a8fa.entry.js} +1 -1
  547. package/dist/realtimekit-ui/{p-aa70de39.entry.js → p-612a8d25.entry.js} +1 -1
  548. package/dist/realtimekit-ui/{p-6adb2de4.entry.js → p-616dc312.entry.js} +1 -1
  549. package/dist/realtimekit-ui/{p-a9dd63ef.entry.js → p-639601b7.entry.js} +1 -1
  550. package/dist/realtimekit-ui/{p-c638f666.entry.js → p-64206b62.entry.js} +1 -1
  551. package/dist/realtimekit-ui/{p-1666857d.entry.js → p-67ead213.entry.js} +1 -1
  552. package/dist/realtimekit-ui/{p-882d07c9.entry.js → p-685adc5f.entry.js} +1 -1
  553. package/dist/realtimekit-ui/p-6896e819.entry.js +1 -0
  554. package/dist/realtimekit-ui/{p-09869644.entry.js → p-6914a616.entry.js} +1 -1
  555. package/dist/realtimekit-ui/{p-9cbf286a.entry.js → p-701cdf1b.entry.js} +1 -1
  556. package/dist/realtimekit-ui/p-7108d1cd.entry.js +1 -0
  557. package/dist/realtimekit-ui/{p-a319e81f.entry.js → p-75f53ae6.entry.js} +1 -1
  558. package/dist/realtimekit-ui/{p-c1b81873.entry.js → p-7a9a226e.entry.js} +1 -1
  559. package/dist/realtimekit-ui/{p-3d0c4257.entry.js → p-7d01d588.entry.js} +1 -1
  560. package/dist/realtimekit-ui/{p-8b341608.entry.js → p-80e51a73.entry.js} +1 -1
  561. package/dist/realtimekit-ui/p-820dad23.entry.js +1 -0
  562. package/dist/realtimekit-ui/p-85b3c0c4.entry.js +1 -0
  563. package/dist/realtimekit-ui/{p-f0f6c282.entry.js → p-85b45c3b.entry.js} +1 -1
  564. package/dist/realtimekit-ui/{p-2a0ec1c6.entry.js → p-8778b3e6.entry.js} +1 -1
  565. package/dist/realtimekit-ui/{p-c5c965b8.entry.js → p-94a37c73.entry.js} +1 -1
  566. package/dist/realtimekit-ui/{p-3369f405.entry.js → p-95fb25d6.entry.js} +1 -1
  567. package/dist/realtimekit-ui/{p-80c856cd.js → p-9b550ec4.js} +1 -1
  568. package/dist/realtimekit-ui/{p-643194e4.entry.js → p-a0d39ea3.entry.js} +1 -1
  569. package/dist/realtimekit-ui/{p-639ab9ad.entry.js → p-a1408db4.entry.js} +1 -1
  570. package/dist/realtimekit-ui/{p-d0384d90.entry.js → p-a40cc665.entry.js} +1 -1
  571. package/dist/realtimekit-ui/{p-084b6f30.js → p-a5900df2.js} +1 -1
  572. package/dist/realtimekit-ui/{p-a1203856.entry.js → p-a67e2a25.entry.js} +1 -1
  573. package/dist/realtimekit-ui/{p-31f58b98.entry.js → p-a680da64.entry.js} +1 -1
  574. package/dist/realtimekit-ui/{p-61a16ccf.entry.js → p-a7172c2d.entry.js} +1 -1
  575. package/dist/realtimekit-ui/{p-91ea043c.js → p-a7e0277f.js} +1 -1
  576. package/dist/realtimekit-ui/p-a852e0cf.entry.js +1 -0
  577. package/dist/realtimekit-ui/{p-ae7319ac.entry.js → p-a9190330.entry.js} +1 -1
  578. package/dist/realtimekit-ui/{p-7613857e.entry.js → p-ac6c8ebe.entry.js} +1 -1
  579. package/dist/realtimekit-ui/{p-e7b83772.entry.js → p-ad5e9fdb.entry.js} +1 -1
  580. package/dist/realtimekit-ui/{p-98ee3341.entry.js → p-af58f450.entry.js} +1 -1
  581. package/dist/realtimekit-ui/{p-6a45f305.js → p-afa7211c.js} +1 -1
  582. package/dist/realtimekit-ui/{p-4eee77b0.entry.js → p-b25f7d7b.entry.js} +1 -1
  583. package/dist/realtimekit-ui/p-b51e813e.entry.js +1 -0
  584. package/dist/realtimekit-ui/{p-38aec474.entry.js → p-be03944b.entry.js} +1 -1
  585. package/dist/realtimekit-ui/{p-3eefefa3.entry.js → p-be5bdd0a.entry.js} +1 -1
  586. package/dist/realtimekit-ui/p-bf717b8c.entry.js +1 -0
  587. package/dist/realtimekit-ui/p-c5f704a3.entry.js +1 -0
  588. package/dist/realtimekit-ui/{p-de75d48d.entry.js → p-c8773db0.entry.js} +1 -1
  589. package/dist/realtimekit-ui/{p-5a2d8313.entry.js → p-cb54bd67.entry.js} +1 -1
  590. package/dist/realtimekit-ui/{p-ba51770e.entry.js → p-cc226b51.entry.js} +1 -1
  591. package/dist/realtimekit-ui/{p-91fd286c.js → p-cd0c5440.js} +1 -1
  592. package/dist/realtimekit-ui/{p-e925ca8a.entry.js → p-cd56beb7.entry.js} +1 -1
  593. package/dist/realtimekit-ui/{p-d7f16f24.entry.js → p-cda276d6.entry.js} +1 -1
  594. package/dist/realtimekit-ui/{p-93b84c22.js → p-d3e520e5.js} +1 -1
  595. package/dist/realtimekit-ui/p-d880fb69.entry.js +1 -0
  596. package/dist/realtimekit-ui/{p-11c964cf.entry.js → p-e0c73820.entry.js} +1 -1
  597. package/dist/realtimekit-ui/{p-e62593a2.entry.js → p-e5b426fa.entry.js} +1 -1
  598. package/dist/realtimekit-ui/{p-61d3f74f.entry.js → p-e78ba202.entry.js} +1 -1
  599. package/dist/realtimekit-ui/{p-7786e9a7.entry.js → p-ebfde234.entry.js} +1 -1
  600. package/dist/realtimekit-ui/p-ec5ed8a4.entry.js +1 -0
  601. package/dist/realtimekit-ui/{p-9c1f42dd.entry.js → p-f266302c.entry.js} +1 -1
  602. package/dist/realtimekit-ui/{p-d9cad67f.entry.js → p-f32aecbc.entry.js} +1 -1
  603. package/dist/realtimekit-ui/{p-7f76de48.entry.js → p-f6c82f1b.entry.js} +1 -1
  604. package/dist/realtimekit-ui/p-fa86682c.entry.js +1 -0
  605. package/dist/realtimekit-ui/{p-788f26c4.entry.js → p-fcb7a6e2.entry.js} +1 -1
  606. package/dist/realtimekit-ui/realtimekit-ui.esm.js +1 -1
  607. package/dist/types/components/rtk-chat/rtk-chat.d.ts +6 -1
  608. package/dist/types/components/rtk-chat-composer-view/rtk-chat-composer-view.d.ts +1 -0
  609. package/dist/types/components/rtk-chat-messages-ui-paginated/rtk-chat-messages-ui-paginated.d.ts +2 -0
  610. package/dist/types/components/rtk-chat-toggle/rtk-chat-toggle.d.ts +4 -6
  611. package/dist/types/components/rtk-meeting/rtk-meeting.d.ts +4 -0
  612. package/dist/types/components/rtk-menu-item/rtk-menu-item.d.ts +2 -0
  613. package/dist/types/components/rtk-menu-list/rtk-menu-list.d.ts +2 -0
  614. package/dist/types/components/rtk-message-view/rtk-message-view.d.ts +7 -0
  615. package/dist/types/components/rtk-paginated-list/rtk-paginated-list.d.ts +55 -54
  616. package/dist/types/components/rtk-ui-provider/rtk-ui-provider.d.ts +4 -1
  617. package/dist/types/components.d.ts +84 -7
  618. package/dist/types/exports.d.ts +2 -1
  619. package/dist/types/lib/overrides.d.ts +16 -0
  620. package/dist/types/utils/flags.d.ts +0 -1
  621. package/dist/types/utils/sync-with-store/ui-store.d.ts +4 -1
  622. package/package.json +1 -1
  623. package/dist/components/p-a9540d93.js +0 -357
  624. package/dist/components/p-d4e2ac64.js +0 -203
  625. package/dist/realtimekit-ui/p-0689d68b.entry.js +0 -1
  626. package/dist/realtimekit-ui/p-1bf58a84.entry.js +0 -1
  627. package/dist/realtimekit-ui/p-2f641bfa.entry.js +0 -1
  628. package/dist/realtimekit-ui/p-33228f0a.entry.js +0 -1
  629. package/dist/realtimekit-ui/p-3e02ec0b.entry.js +0 -1
  630. package/dist/realtimekit-ui/p-481549ac.entry.js +0 -1
  631. package/dist/realtimekit-ui/p-50157a65.entry.js +0 -1
  632. package/dist/realtimekit-ui/p-50e861f9.entry.js +0 -1
  633. package/dist/realtimekit-ui/p-57277553.entry.js +0 -1
  634. package/dist/realtimekit-ui/p-5dc40f1a.entry.js +0 -1
  635. package/dist/realtimekit-ui/p-77e04fb7.entry.js +0 -1
  636. package/dist/realtimekit-ui/p-7a8ca3f2.entry.js +0 -1
  637. package/dist/realtimekit-ui/p-930f0255.entry.js +0 -1
  638. package/dist/realtimekit-ui/p-941f159e.entry.js +0 -1
  639. package/dist/realtimekit-ui/p-a4e223e8.entry.js +0 -1
  640. package/dist/realtimekit-ui/p-b564d931.entry.js +0 -1
  641. package/dist/realtimekit-ui/p-e720b51e.js +0 -1
  642. package/dist/realtimekit-ui/p-e87928f7.js +0 -1
  643. package/dist/realtimekit-ui/p-f40a55e3.entry.js +0 -1
  644. package/dist/realtimekit-ui/p-f645b8bb.entry.js +0 -1
@@ -1,3 +1,29 @@
1
+ /**
2
+ * NOTE(ikabra): INFINITE SCROLL IMPLEMENTATION:
3
+ *
4
+ * Uses scrollend listener for 2way scrolling.
5
+ * Empty divs ($topRef, $bottomRef) act as scroll triggers to fetch new messages.
6
+ *
7
+ * UPWARD SCROLLING:
8
+ * - Fetch top anchor (element currently visible to the user near top)
9
+ * - Fetch older messages, push to end of 2D array
10
+ * - When exceeding pagesAllowed, delete pages and scroll back to anchor
11
+ *
12
+ * DOWNWARD SCROLLING:
13
+ * - Fetch bottom anchor (element currently visible to the user near bottom)
14
+ * - Fetch new page, insert at the start
15
+ * - Update timestamps & firstEmptyIndex, then rerender
16
+ * - When exceeding pagesAllowed, delete pages and scroll back to anchor
17
+ *
18
+ * ADDING NEW NODES:
19
+ * - If no pages exist, load old page
20
+ * - If on 1st page, append messages till page size is full and then load new page
21
+ *
22
+ * DELETE NODE:
23
+ * - If deleting the only available node, reset to initial state
24
+ * - If page is empty, delete it
25
+ * - Update timestamp curors
26
+ */
1
27
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
28
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
29
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
@@ -8,278 +34,312 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
34
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
35
  return c > 3 && r && Object.defineProperty(target, key, r), r;
10
36
  };
11
- import { Host, h, writeTask } from "@stencil/core";
12
- import { debounce } from "lodash-es";
37
+ import { Host, h } from "@stencil/core";
13
38
  import { defaultIconPack } from "../../lib/icons";
14
39
  import { useLanguage } from "../../lib/lang";
15
40
  import { SyncWithStore } from "../../utils/sync-with-store";
16
- import { smoothScrollToBottom } from "../../utils/scroll";
41
+ import { debounce } from "lodash-es";
17
42
  export class RtkPaginatedList {
18
43
  constructor() {
44
+ // Timestamp pertaining to the oldest stored message
45
+ this.oldestPaginatedTimestamp = null;
46
+ // Timestamp pertaining to the latest stored message
47
+ this.latestPaginatedTimestamp = null;
48
+ // Timestamp pertaining to the latest message stored in backend
49
+ this.latestMessageTimestamp = null;
50
+ // the length of pages will always be pageSize + 2
51
+ this.pages = [];
52
+ // Controls whether to keep auto-scrolling when a new page load.
53
+ this.shouldScrollToBottom = false;
54
+ // Shows "scroll to bottom" button when new nodes arrive and autoscroll is off.
55
+ this.showNewMessagesCTR = false;
56
+ /** label to show when empty */
57
+ this.emptyListLabel = null;
19
58
  /** Icon pack */
20
59
  this.iconPack = defaultIconPack;
21
60
  /** Language */
22
61
  this.t = useLanguage();
23
- /** label to show when empty */
24
- this.emptyListLabel = null;
62
+ this.rerenderBoolean = false;
63
+ this.showEmptyListLabel = false;
25
64
  this.isLoading = false;
26
65
  this.isLoadingTop = false;
27
66
  this.isLoadingBottom = false;
28
- this.hasMoreDataAtTop = false;
29
- this.rerenderBoolean = false;
30
- /**
31
- * This gets disabled when the user scrolls up and the bottom node
32
- * is not visible anymore.
33
- */
34
- this.shouldRenderNewNodes = true;
35
- /**
36
- * This gets disabled when the user scrolls up and the bottom node
37
- * is not visible anymore.
38
- */
39
- this.hasNewNodesToRender = false;
40
- this.showEmptyListLabel = false;
41
- /**
42
- * This is a private variable not a state
43
- * since we want to debounce rerenders
44
- *
45
- * A list of pages where each page contains a number of Nodes
46
- * [
47
- * [Node 1, Node 2, Node 3.... Node N],
48
- * [Node 1, Node 2, Node 3.... Node N],
49
- * ]
50
- */
51
- this.pagesToRender = [[]];
52
- this.currentTime = () => {
53
- return new Date().getTime();
54
- };
55
- this.observe = (el) => {
56
- if (!el)
57
- return;
58
- this.intersectionObserver.observe(el);
67
+ // Tells us if we need to scroll to a specific anchor after a rerender
68
+ this.pendingScrollAnchor = null;
69
+ this.isInView = (el) => {
70
+ const rect = el.getBoundingClientRect();
71
+ return rect.top >= 0 && rect.bottom <= window.innerHeight;
59
72
  };
60
73
  }
61
74
  /**
62
- * On a new node created
75
+ * Adds a new node to the beginning of the paginated list
76
+ * @param {DataNode} node - The data node to add to the beginning of the list
63
77
  */
64
78
  async onNewNode(node) {
65
- if (!this.shouldRenderNewNodes) {
66
- this.hasNewNodesToRender = true;
67
- return;
79
+ // if there are no pages, append to the first page
80
+ if (this.pages.length < 1) {
81
+ this.oldestPaginatedTimestamp = node.timeMs;
82
+ this.pages.unshift([node]);
83
+ this.latestPaginatedTimestamp = node.timeMs;
84
+ this.latestMessageTimestamp = node.timeMs;
85
+ this.rerender();
86
+ if (this.autoScroll)
87
+ this.$bottomRef.scrollIntoView({ behavior: 'smooth' });
68
88
  }
69
- this.addNodeToRender(node, false);
70
- this.rerender();
89
+ else if (this.latestMessageTimestamp === this.latestPaginatedTimestamp) {
90
+ // append messages to the page if page has not reached full capacity
91
+ if (this.pages[0].length < this.pageSize) {
92
+ this.pages[0].unshift(node);
93
+ this.latestPaginatedTimestamp = node.timeMs;
94
+ this.latestMessageTimestamp = node.timeMs;
95
+ this.rerender();
96
+ }
97
+ else {
98
+ // if page is at full capacity, load next page
99
+ this.pages.unshift([node]);
100
+ this.latestPaginatedTimestamp = node.timeMs;
101
+ this.latestMessageTimestamp = node.timeMs;
102
+ // remove pages if out of bounds
103
+ if (this.pages.length > this.pagesAllowed)
104
+ this.pages.pop();
105
+ // update timestamps
106
+ const lastPage = this.pages[this.pages.length - 1];
107
+ this.oldestPaginatedTimestamp = lastPage[lastPage.length - 1].timeMs;
108
+ this.rerender();
109
+ }
110
+ if (this.autoScroll)
111
+ this.$bottomRef.scrollIntoView({ behavior: 'smooth' });
112
+ }
113
+ else {
114
+ if (this.autoScroll)
115
+ this.scrollToBottom();
116
+ }
117
+ this.pendingScrollAnchor = null;
71
118
  }
72
119
  /**
73
- * On node deleted
74
- */
75
- async onNodeDelete(key) {
76
- const oldLength = this.pagesToRender.flat().length;
77
- this.pagesToRender = this.pagesToRender.map((page) => page.filter((item) => item.id !== key));
78
- if (oldLength !== this.pagesToRender.flat().length) {
120
+ * Deletes a node anywhere from the list
121
+ * @param {string} id - The id of the node to delete
122
+ * */
123
+ async onNodeDelete(id) {
124
+ var _a, _b;
125
+ for (let i = this.pages.length - 1; i >= 0; i--) {
126
+ const index = this.pages[i].findIndex((node) => node.id === id);
127
+ // if message not found, move on
128
+ if (index === -1)
129
+ continue;
130
+ // delete message
131
+ this.pages[i].splice(index, 1);
132
+ // if page is empty, delete it
133
+ if (this.pages[i].length === 0)
134
+ this.pages.splice(i, 1);
135
+ // update timestamps
136
+ const firstPage = this.pages[0];
137
+ const lastPage = this.pages[this.pages.length - 1];
138
+ this.latestPaginatedTimestamp = (_a = firstPage === null || firstPage === void 0 ? void 0 : firstPage[0]) === null || _a === void 0 ? void 0 : _a.timeMs;
139
+ this.oldestPaginatedTimestamp = (_b = lastPage === null || lastPage === void 0 ? void 0 : lastPage[lastPage.length - 1]) === null || _b === void 0 ? void 0 : _b.timeMs;
140
+ // if I have deleted the latest message, update latestMessageTimestamp
141
+ if (index === 0 && i === 0)
142
+ this.latestMessageTimestamp = this.latestPaginatedTimestamp;
79
143
  this.rerender();
144
+ break;
80
145
  }
81
146
  }
82
147
  /**
83
- * On node updated
84
- */
85
- async onNodeUpdate(key, newItem) {
86
- let shouldRerender = false;
87
- this.pagesToRender = this.pagesToRender.map((page) => page.map((item) => {
88
- if (item.id === key) {
89
- shouldRerender = true;
90
- return newItem;
91
- }
92
- return item;
93
- }));
94
- if (shouldRerender)
148
+ * Updates a new node anywhere in the list
149
+ * @param {string} id - The id of the node to update
150
+ * @param {DataNode} node - The updated data node
151
+ * */
152
+ async onNodeUpdate(id, node) {
153
+ for (let i = this.pages.length - 1; i >= 0; i--) {
154
+ const index = this.pages[i].findIndex((node) => node.id === id);
155
+ // if message not found, move on
156
+ if (index === -1)
157
+ continue;
158
+ // edit message
159
+ this.pages[i][index] = node;
95
160
  this.rerender();
96
- }
97
- onItemChanged(newItemId, oldItemId) {
98
- if (newItemId !== oldItemId) {
99
- this.pagesToRender = [[]];
100
- this.loadFirstPage().then(() => this.rerender());
161
+ break;
101
162
  }
102
163
  }
103
164
  connectedCallback() {
104
165
  this.rerender = debounce(this.rerender.bind(this), 50, { maxWait: 200 });
105
- this.autoScroll = true;
106
- this.intersectionObserver = new IntersectionObserver((entries) => {
107
- writeTask(() => {
108
- for (const entry of entries) {
109
- if (entry.target.id === 'bottom-scroll') {
110
- if (entry.isIntersecting)
111
- this.loadBottom();
112
- else
113
- this.shouldRenderNewNodes = false;
114
- }
115
- if (entry.target.id === 'top-scroll' && entry.isIntersecting) {
116
- this.loadTop();
117
- }
118
- }
119
- });
120
- });
121
- }
122
- disconnectedCallback() {
123
- this.intersectionObserver.disconnect();
124
166
  }
125
167
  componentDidLoad() {
126
- /**
127
- * Adding observes here so that on the first render we scroll down
128
- * and shouldRenderNewNodes remains true
129
- */
130
- this.loadFirstPage();
131
- this.observe(this.$topRef);
132
- this.observe(this.$bottomRef);
168
+ // initial load
169
+ this.loadPrevPage();
170
+ if (this.$containerRef) {
171
+ this.$containerRef.onscrollend = async () => {
172
+ // do not do anything if we are scrolling to bottom
173
+ if (this.shouldScrollToBottom)
174
+ return;
175
+ // handle top and bottom scroll
176
+ if (this.isInView(this.$bottomRef) &&
177
+ this.latestMessageTimestamp > this.latestPaginatedTimestamp) {
178
+ await this.loadNextPage();
179
+ }
180
+ else if (this.isInView(this.$topRef)) {
181
+ this.showNewMessagesCTR = true;
182
+ await this.loadPrevPage();
183
+ }
184
+ };
185
+ }
133
186
  }
134
187
  componentDidRender() {
135
- if (this.shouldRenderNewNodes && this.autoScroll)
136
- smoothScrollToBottom(this.$paginatedList);
137
- }
138
- loadFirstPage() {
139
- return this.loadPage(this.currentTime(), this.pageSize, true, (data) => {
140
- if (data.length === 0) {
141
- this.showEmptyListLabel = true;
142
- }
143
- });
144
- }
145
- loadTop() {
146
- /**
147
- * If there is only one unfilled page or no page, no need to check
148
- * for top since it will be empty
149
- */
150
- if (this.pagesToRender.length === 0)
151
- return;
152
- if (this.pagesToRender.length === 1 && this.pagesToRender[0].length < this.pageSize)
188
+ if (!this.pendingScrollAnchor)
153
189
  return;
154
- /**
155
- * TODO: Make this more flexible currently this only works with chat
156
- */
157
- const oldestVNode = this.pagesToRender[0][0];
158
- const oldestTimestamp = oldestVNode.timeMs;
159
- // TODO: scrollIntoView
160
- const onPageRendered = () => { }; // oldestVNode.$elm$?.scrollIntoView();
161
- this.isLoadingTop = true;
162
- this.loadPage(oldestTimestamp - 1, this.pageSize, true, onPageRendered, 'top');
190
+ const anchor = this.pendingScrollAnchor;
191
+ this.pendingScrollAnchor = null;
192
+ this.restoreScrollToAnchor(anchor);
163
193
  }
164
- loadBottom() {
165
- /**
166
- * If there is only one unfilled page or no page, no need to check
167
- * for top since it will be empty
168
- */
169
- if (this.pagesToRender.length === 0) {
170
- this.shouldRenderNewNodes = true;
194
+ async loadPrevPage() {
195
+ if (this.isLoading)
171
196
  return;
172
- }
173
- if (this.pagesToRender.length === 1 && this.pagesToRender[0].length < this.pageSize) {
174
- this.shouldRenderNewNodes = true;
197
+ const scrollAnchor = this.getScrollAnchor('top');
198
+ // if no old timestamp, it means we are at initial state
199
+ if (!this.oldestPaginatedTimestamp)
200
+ this.oldestPaginatedTimestamp = new Date().getTime();
201
+ // load data
202
+ this.isLoading = true;
203
+ this.isLoadingTop = true;
204
+ const data = await this.fetchData(this.oldestPaginatedTimestamp - 1, this.pageSize, true);
205
+ this.isLoading = false;
206
+ this.isLoadingTop = false;
207
+ // no more old messages to show, we are at the top of the page
208
+ if (!data.length)
175
209
  return;
210
+ // add old data to the end of the array
211
+ this.pages.push(data);
212
+ // clear old pages when we reach the limit
213
+ if (this.pages.length > this.pagesAllowed)
214
+ this.pages.shift();
215
+ // update timestamps
216
+ const lastPage = this.pages[this.pages.length - 1];
217
+ this.oldestPaginatedTimestamp = lastPage[lastPage.length - 1].timeMs;
218
+ this.latestPaginatedTimestamp = this.pages[0][0].timeMs;
219
+ if (!this.latestMessageTimestamp)
220
+ this.latestMessageTimestamp = this.latestPaginatedTimestamp;
221
+ this.rerender();
222
+ // fix scroll position
223
+ if (scrollAnchor)
224
+ this.pendingScrollAnchor = scrollAnchor;
225
+ }
226
+ async loadNextPage() {
227
+ if (this.isLoading)
228
+ return [];
229
+ // Do nothing. New timestamp needs to be assigned by loadPrevPage method
230
+ if (!this.latestPaginatedTimestamp) {
231
+ this.showNewMessagesCTR = false;
232
+ return [];
176
233
  }
177
- const newestVNode = this.pagesToRender.at(-1).at(-1);
178
- const newestTimestamp = newestVNode.timeMs;
179
- // TODO: scrollIntoView
180
- const onPageRendered = () => smoothScrollToBottom(this.$paginatedList);
234
+ this.isLoading = true;
181
235
  this.isLoadingBottom = true;
182
- this.loadPage(newestTimestamp + 1, this.pageSize, false, onPageRendered, 'bottom');
183
- }
184
- addNodeToRender(node, addToStart) {
185
- if (addToStart) {
186
- const firstPage = this.pagesToRender[0];
187
- if (firstPage && (firstPage === null || firstPage === void 0 ? void 0 : firstPage.length) < this.pageSize) {
188
- /**
189
- * If first page is not full then just add to that page
190
- */
191
- firstPage.unshift(node);
192
- }
193
- else {
194
- /**
195
- * If first page is full then add a new page to the start
196
- */
197
- const newPage = [node];
198
- this.pagesToRender.unshift(newPage);
199
- this.removeLastPageIfNeeded(false);
200
- }
236
+ const scrollAnchor = this.getScrollAnchor('bottom');
237
+ const data = await this.fetchData(this.latestPaginatedTimestamp + 1, this.pageSize, false);
238
+ this.isLoading = false;
239
+ this.isLoadingBottom = false;
240
+ // no more new messages to load
241
+ if (!data.length) {
242
+ this.latestMessageTimestamp = this.latestPaginatedTimestamp;
243
+ this.showNewMessagesCTR = false;
244
+ return [];
201
245
  }
202
- else {
203
- const [lastPage] = this.pagesToRender.slice(-1);
204
- if (lastPage && (lastPage === null || lastPage === void 0 ? void 0 : lastPage.length) < this.pageSize) {
205
- /**
206
- * If last page is not full then just add it
207
- */
208
- lastPage.push(node);
246
+ // load new messages and append to the start
247
+ const incoming = [...data].reverse();
248
+ if (this.pages.length === 0)
249
+ this.pages.unshift([]);
250
+ const firstPage = this.pages[0];
251
+ const spaceInFirstPage = this.pageSize - firstPage.length;
252
+ if (spaceInFirstPage > 0) {
253
+ const toFill = incoming.splice(0, spaceInFirstPage);
254
+ firstPage.unshift(...toFill);
255
+ }
256
+ while (incoming.length > 0) {
257
+ this.pages.unshift(incoming.splice(0, this.pageSize));
258
+ }
259
+ // remove pages if out of bounds
260
+ if (this.pages.length > this.pagesAllowed)
261
+ this.pages.pop();
262
+ // update timestamps
263
+ const lastPage = this.pages[this.pages.length - 1];
264
+ this.oldestPaginatedTimestamp = lastPage[lastPage.length - 1].timeMs;
265
+ this.latestPaginatedTimestamp = this.pages[0][0].timeMs;
266
+ this.rerender();
267
+ this.pendingScrollAnchor = scrollAnchor;
268
+ return data;
269
+ }
270
+ // Find the element that is closest to the top/bottom of the container
271
+ getScrollAnchor(edge = 'top') {
272
+ if (!this.$containerRef)
273
+ return null;
274
+ const containerRect = this.$containerRef.getBoundingClientRect();
275
+ const candidates = Array.from(this.$containerRef.querySelectorAll('[id]')).filter((el) => el.id !== 'top-scroll' && el.id !== 'bottom-scroll');
276
+ let best = null;
277
+ for (const el of candidates) {
278
+ const rect = el.getBoundingClientRect();
279
+ const isVisibleInContainer = rect.bottom > containerRect.top && rect.top < containerRect.bottom;
280
+ if (!isVisibleInContainer)
281
+ continue;
282
+ if (edge === 'top') {
283
+ const offsetTop = rect.top - containerRect.top;
284
+ if (best == null || (best.edge === 'top' && offsetTop < best.offsetTop)) {
285
+ best = { id: el.id, edge: 'top', offsetTop };
286
+ }
209
287
  }
210
288
  else {
211
- /**
212
- * If last page is full add a new page with just
213
- * this node
214
- */
215
- const newPage = [node];
216
- this.pagesToRender.push(newPage);
217
- this.removeLastPageIfNeeded(true);
289
+ const offsetBottom = containerRect.bottom - rect.bottom;
290
+ if (best == null || (best.edge === 'bottom' && offsetBottom < best.offsetBottom)) {
291
+ best = { id: el.id, edge: 'bottom', offsetBottom };
292
+ }
218
293
  }
219
294
  }
295
+ return best;
220
296
  }
221
- /**
222
- * @param start
223
- * @param end
224
- * @param reversed Defines whether to add the page at the beginning or the end
225
- * @param onPageLoaded Callback for when all new nodes are rendered
226
- * @param direction Indicates if loading from 'top' or 'bottom'
227
- */
228
- async loadPage(timestamp, size, reversed, onPageRendered = () => { }, direction) {
229
- this.isLoading = true;
230
- const data = (await this.fetchData(timestamp, size, reversed));
231
- this.isLoading = false;
232
- if (direction === 'top') {
233
- this.isLoadingTop = false;
234
- this.hasMoreDataAtTop = (data === null || data === void 0 ? void 0 : data.length) > 0;
297
+ //instant scroll to anchor to make sure we are at the same position after a rerender
298
+ restoreScrollToAnchor(anchor) {
299
+ if (!this.$containerRef)
300
+ return;
301
+ // make element id safe to use inside a CSS selector
302
+ const escapeId = (id) => {
303
+ var _a;
304
+ const cssEscape = (_a = globalThis.CSS) === null || _a === void 0 ? void 0 : _a.escape;
305
+ return typeof cssEscape === 'function'
306
+ ? cssEscape(id)
307
+ : id.replace(/[^a-zA-Z0-9_-]/g, '\\$&');
308
+ };
309
+ const el = this.$containerRef.querySelector(`#${escapeId(anchor.id)}`);
310
+ if (!el)
311
+ return;
312
+ const containerRect = this.$containerRef.getBoundingClientRect();
313
+ const rect = el.getBoundingClientRect();
314
+ if (anchor.edge === 'top') {
315
+ const newOffsetTop = rect.top - containerRect.top;
316
+ this.$containerRef.scrollTop += newOffsetTop - anchor.offsetTop;
235
317
  }
236
- if (direction === 'bottom') {
237
- this.isLoadingBottom = false;
318
+ else {
319
+ const newOffsetBottom = containerRect.bottom - rect.bottom;
320
+ this.$containerRef.scrollTop += anchor.offsetBottom - newOffsetBottom;
238
321
  }
239
- if (!(data === null || data === void 0 ? void 0 : data.length)) {
240
- /**
241
- * While scrolling down if there were no new items found
242
- * then start rendering new nodes;
243
- */
244
- if (!reversed) {
245
- this.hasNewNodesToRender = false;
246
- this.shouldRenderNewNodes = true;
247
- }
248
- onPageRendered([]);
249
- return;
322
+ }
323
+ // this method is called recursively based on shouldScrollToBottom (see loadNextPage)
324
+ async scrollToBottom() {
325
+ this.shouldScrollToBottom = true;
326
+ while (this.shouldScrollToBottom) {
327
+ const response = await this.loadNextPage();
328
+ this.$bottomRef.scrollIntoView({ behavior: 'smooth' });
329
+ if (response.length === 0)
330
+ this.shouldScrollToBottom = false;
250
331
  }
251
- data.forEach((node) => this.addNodeToRender(node, reversed));
252
- this.rerender();
253
- onPageRendered(data);
254
332
  }
255
333
  rerender() {
256
334
  this.rerenderBoolean = !this.rerenderBoolean;
257
335
  }
258
- removeLastPageIfNeeded(removeFromStart) {
259
- if (this.pagesToRender.length > this.pagesAllowed) {
260
- if (removeFromStart)
261
- this.pagesToRender.shift();
262
- else
263
- this.pagesToRender.pop();
264
- }
265
- }
266
- onDownArrowClicked() {
267
- /**
268
- * Load the freshest pages
269
- */
270
- this.loadBottom();
271
- }
272
- onLoadMoreOnTopClicked() {
273
- this.loadTop();
274
- }
275
336
  render() {
276
- var _a;
277
337
  /**
278
- * div.container is flex=column-reverse
279
- * which is why div#bottom-scroll comes before div#top-scroll
280
- * div.page-wrapper prevents reversal of messages
338
+ * div.container is flex=column-reversewhich is why div#bottom-scroll comes before div#top-scroll
281
339
  */
282
- return (h(Host, { key: '23e10f12b079213650cf9c947d30650ba8c95a4d' }, h("div", { key: 'b5406069fd69ff117b19d437184c38b3c7d2fc28', class: "scrollbar container", part: "container", ref: (el) => (this.$paginatedList = el) }, h("div", { key: '7be947f2409ff810e0d10beea53ace8fdec334ce', class: { 'show-new-messages-ctr': true, active: !this.shouldRenderNewNodes } }, h("rtk-button", { key: '45c43d6ca1cc39376334dffa10f3f2c137d65add', class: "show-new-messages", kind: "icon", variant: "secondary", part: "show-new-messages", onClick: () => this.onDownArrowClicked() }, h("rtk-icon", { key: '519b0db80f7d16cc4d03983e227d4897a5868ec9', icon: this.iconPack.chevron_down }))), h("div", { key: '53691e3943b90ef9e422c8da8f5facaa23f01920', class: "smallest-dom-element", id: "bottom-scroll", ref: (el) => (this.$bottomRef = el) }), this.isLoadingBottom && h("rtk-spinner", { key: '2a393cb0bbb07c356144464dcc7c597f5cc9771b', size: "sm" }), this.isLoading && this.pagesToRender.flat().length === 0 && h("rtk-spinner", { key: '4ce03be69368db0d6d0d4ad079b14f2c7d93f26d', 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: '5c85806854687efe098e4bd6d06d109060445378', class: "load-more-on-top-container" }, h("rtk-button", { key: '6d73a030fad5ba133aa2841b2feb196646592ada', class: "load-more-icon", kind: "icon", variant: "secondary", part: "load-more-icon", onClick: () => this.onLoadMoreOnTopClicked() }, h("rtk-icon", { key: '61a4f376749938df280e5c734dd3fa8a9b0b7201', icon: this.iconPack.chevron_up })))), this.isLoadingTop && h("rtk-spinner", { key: '3e55b99c60ed7bc2cd937091a33663dd19c9ca68', size: "sm" }), h("div", { key: 'a69e0a3a26d295783f4f729b33770b206ab5d46b', class: "smallest-dom-element", id: "top-scroll", ref: (el) => (this.$topRef = el) }))));
340
+ return (h(Host, { key: 'd3a69c210794a552e1a45d0d184b16657cbfde79' }, h("div", { key: 'c9cdb45d5cea872660bc8e2170c3d94c9331a861', class: "scrollbar container", part: "container", ref: (el) => (this.$containerRef = el) }, h("div", { key: '1bacf2a627e8a7f11f75e0ecbda873609cd347b9', class: { 'show-new-messages-ctr': true, active: this.showNewMessagesCTR } }, h("rtk-button", { key: '0c4e3f79e2a7447f1195e03aa026d0f228d09f90', class: "show-new-messages", kind: "icon", variant: "secondary", part: "show-new-messages", onClick: () => {
341
+ this.scrollToBottom();
342
+ } }, this.shouldScrollToBottom ? (h("rtk-spinner", { size: "sm" })) : (h("rtk-icon", { icon: this.iconPack.chevron_down })))), h("div", { key: '439f9e943266f60c933812771682bc414b86d418', class: "smallest-dom-element", id: "bottom-scroll", ref: (el) => (this.$bottomRef = el) }), this.isLoadingBottom && this.pages.length > 0 && h("rtk-spinner", { key: 'd79aa2e74a62b14a456c8437362bb01a9df933e1', size: "sm" }), this.isLoading && this.pages.length < 1 && h("rtk-spinner", { key: '7ccfd41966d0337a8abe9a3086ca3f07fe051dc0', 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: '1c6c11863adba0205d0dd2ce649f3bdf51c9df60', size: "sm" }), h("div", { key: '413506236882f6d516967db0f642f5db63c7971f', class: "smallest-dom-element", id: "top-scroll", ref: (el) => (this.$topRef = el) }))));
283
343
  }
284
344
  static get is() { return "rtk-paginated-list"; }
285
345
  static get encapsulation() { return "shadow"; }
@@ -333,6 +393,26 @@ export class RtkPaginatedList {
333
393
  "attribute": "pages-allowed",
334
394
  "reflect": false
335
395
  },
396
+ "emptyListLabel": {
397
+ "type": "string",
398
+ "mutable": false,
399
+ "complexType": {
400
+ "original": "string",
401
+ "resolved": "string",
402
+ "references": {}
403
+ },
404
+ "required": false,
405
+ "optional": false,
406
+ "docs": {
407
+ "tags": [],
408
+ "text": "label to show when empty"
409
+ },
410
+ "getter": false,
411
+ "setter": false,
412
+ "attribute": "empty-list-label",
413
+ "reflect": false,
414
+ "defaultValue": "null"
415
+ },
336
416
  "fetchData": {
337
417
  "type": "unknown",
338
418
  "mutable": false,
@@ -463,39 +543,16 @@ export class RtkPaginatedList {
463
543
  "getter": false,
464
544
  "setter": false,
465
545
  "defaultValue": "useLanguage()"
466
- },
467
- "emptyListLabel": {
468
- "type": "string",
469
- "mutable": false,
470
- "complexType": {
471
- "original": "string",
472
- "resolved": "string",
473
- "references": {}
474
- },
475
- "required": false,
476
- "optional": false,
477
- "docs": {
478
- "tags": [],
479
- "text": "label to show when empty"
480
- },
481
- "getter": false,
482
- "setter": false,
483
- "attribute": "empty-list-label",
484
- "reflect": false,
485
- "defaultValue": "null"
486
546
  }
487
547
  };
488
548
  }
489
549
  static get states() {
490
550
  return {
551
+ "rerenderBoolean": {},
552
+ "showEmptyListLabel": {},
491
553
  "isLoading": {},
492
554
  "isLoadingTop": {},
493
- "isLoadingBottom": {},
494
- "hasMoreDataAtTop": {},
495
- "rerenderBoolean": {},
496
- "shouldRenderNewNodes": {},
497
- "hasNewNodesToRender": {},
498
- "showEmptyListLabel": {}
555
+ "isLoadingBottom": {}
499
556
  };
500
557
  }
501
558
  static get methods() {
@@ -506,7 +563,7 @@ export class RtkPaginatedList {
506
563
  "parameters": [{
507
564
  "name": "node",
508
565
  "type": "DataNode",
509
- "docs": ""
566
+ "docs": "- The data node to add to the beginning of the list"
510
567
  }],
511
568
  "references": {
512
569
  "Promise": {
@@ -522,17 +579,20 @@ export class RtkPaginatedList {
522
579
  "return": "Promise<void>"
523
580
  },
524
581
  "docs": {
525
- "text": "On a new node created",
526
- "tags": []
582
+ "text": "Adds a new node to the beginning of the paginated list",
583
+ "tags": [{
584
+ "name": "param",
585
+ "text": "node - The data node to add to the beginning of the list"
586
+ }]
527
587
  }
528
588
  },
529
589
  "onNodeDelete": {
530
590
  "complexType": {
531
- "signature": "(key: string) => Promise<void>",
591
+ "signature": "(id: string) => Promise<void>",
532
592
  "parameters": [{
533
- "name": "key",
593
+ "name": "id",
534
594
  "type": "string",
535
- "docs": ""
595
+ "docs": "- The id of the node to delete"
536
596
  }],
537
597
  "references": {
538
598
  "Promise": {
@@ -543,21 +603,24 @@ export class RtkPaginatedList {
543
603
  "return": "Promise<void>"
544
604
  },
545
605
  "docs": {
546
- "text": "On node deleted",
547
- "tags": []
606
+ "text": "Deletes a node anywhere from the list",
607
+ "tags": [{
608
+ "name": "param",
609
+ "text": "id - The id of the node to delete"
610
+ }]
548
611
  }
549
612
  },
550
613
  "onNodeUpdate": {
551
614
  "complexType": {
552
- "signature": "(key: string, newItem: DataNode) => Promise<void>",
615
+ "signature": "(id: string, node: DataNode) => Promise<void>",
553
616
  "parameters": [{
554
- "name": "key",
617
+ "name": "id",
555
618
  "type": "string",
556
- "docs": ""
619
+ "docs": "- The id of the node to update"
557
620
  }, {
558
- "name": "newItem",
621
+ "name": "node",
559
622
  "type": "DataNode",
560
- "docs": ""
623
+ "docs": "- The updated data node"
561
624
  }],
562
625
  "references": {
563
626
  "Promise": {
@@ -573,18 +636,18 @@ export class RtkPaginatedList {
573
636
  "return": "Promise<void>"
574
637
  },
575
638
  "docs": {
576
- "text": "On node updated",
577
- "tags": []
639
+ "text": "Updates a new node anywhere in the list",
640
+ "tags": [{
641
+ "name": "param",
642
+ "text": "id - The id of the node to update"
643
+ }, {
644
+ "name": "param",
645
+ "text": "node - The updated data node"
646
+ }]
578
647
  }
579
648
  }
580
649
  };
581
650
  }
582
- static get watchers() {
583
- return [{
584
- "propName": "selectedItemId",
585
- "methodName": "onItemChanged"
586
- }];
587
- }
588
651
  }
589
652
  __decorate([
590
653
  SyncWithStore()