@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.
- package/dist/browser.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/realtimekit-ui.cjs.js +1 -1
- package/dist/cjs/rtk-ai-transcriptions.cjs.entry.js +1 -1
- package/dist/cjs/rtk-audio-grid.cjs.entry.js +1 -1
- package/dist/cjs/rtk-audio-visualizer_4.cjs.entry.js +1 -1
- package/dist/cjs/rtk-avatar_24.cjs.entry.js +242 -232
- package/dist/cjs/rtk-breakout-room-manager_3.cjs.entry.js +4 -4
- package/dist/cjs/rtk-breakout-rooms-manager_9.cjs.entry.js +8 -8
- package/dist/cjs/rtk-channel-creator.cjs.entry.js +2 -2
- package/dist/cjs/rtk-channel-details.cjs.entry.js +1 -1
- package/dist/cjs/rtk-channel-selector-ui.cjs.entry.js +2 -2
- package/dist/cjs/rtk-chat-message.cjs.entry.js +2 -2
- package/dist/cjs/rtk-chat-messages-ui.cjs.entry.js +3 -3
- package/dist/cjs/rtk-chat-search-results.cjs.entry.js +1 -1
- package/dist/cjs/rtk-chat-toggle.cjs.entry.js +27 -22
- package/dist/cjs/rtk-clock.cjs.entry.js +3 -3
- package/dist/cjs/rtk-controlbar.cjs.entry.js +1 -1
- package/dist/cjs/rtk-debugger-toggle.cjs.entry.js +1 -1
- package/dist/cjs/rtk-file-dropzone.cjs.entry.js +1 -1
- package/dist/cjs/rtk-file-message_3.cjs.entry.js +8 -8
- package/dist/cjs/rtk-header.cjs.entry.js +1 -1
- package/dist/cjs/rtk-idle-screen.cjs.entry.js +1 -1
- package/dist/cjs/rtk-image-viewer.cjs.entry.js +1 -1
- package/dist/cjs/rtk-information-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/rtk-leave-button.cjs.entry.js +1 -1
- package/dist/cjs/rtk-message-list-view.cjs.entry.js +3 -3
- package/dist/cjs/rtk-more-toggle.cjs.entry.js +2 -2
- package/dist/cjs/rtk-notification.cjs.entry.js +2 -2
- package/dist/cjs/rtk-participant-setup.cjs.entry.js +2 -2
- package/dist/cjs/rtk-participant_2.cjs.entry.js +14 -14
- package/dist/cjs/rtk-participants-audio.cjs.entry.js +1 -1
- package/dist/cjs/rtk-participants-stage-list_4.cjs.entry.js +1 -1
- package/dist/cjs/rtk-plugins_2.cjs.entry.js +4 -4
- package/dist/cjs/rtk-poll_2.cjs.entry.js +3 -3
- package/dist/cjs/rtk-recording-indicator.cjs.entry.js +1 -1
- package/dist/cjs/rtk-screenshare-view.cjs.entry.js +5 -5
- package/dist/cjs/rtk-settings-toggle.cjs.entry.js +1 -1
- package/dist/cjs/rtk-spotlight-grid.cjs.entry.js +2 -2
- package/dist/cjs/rtk-stage.cjs.entry.js +1 -1
- package/dist/cjs/rtk-transcript.cjs.entry.js +1 -1
- package/dist/cjs/rtk-waiting-screen.cjs.entry.js +1 -1
- package/dist/collection/components/rtk-ai-transcriptions/rtk-ai-transcriptions.js +1 -1
- package/dist/collection/components/rtk-audio-grid/rtk-audio-grid.js +1 -1
- package/dist/collection/components/rtk-breakout-room-participants/rtk-breakout-room-participants.js +2 -2
- package/dist/collection/components/rtk-broadcast-message-modal/rtk-broadcast-message-modal.js +2 -2
- package/dist/collection/components/rtk-channel-creator/rtk-channel-creator.js +2 -2
- package/dist/collection/components/rtk-channel-details/rtk-channel-details.js +1 -1
- package/dist/collection/components/rtk-channel-selector-ui/rtk-channel-selector-ui.js +2 -2
- package/dist/collection/components/rtk-chat-message/rtk-chat-message.js +2 -2
- package/dist/collection/components/rtk-chat-messages-ui/rtk-chat-messages-ui.js +3 -3
- package/dist/collection/components/rtk-chat-messages-ui-paginated/rtk-chat-messages-ui-paginated.js +1 -1
- package/dist/collection/components/rtk-chat-search-results/rtk-chat-search-results.js +1 -1
- package/dist/collection/components/rtk-chat-toggle/rtk-chat-toggle.css +1 -1
- package/dist/collection/components/rtk-chat-toggle/rtk-chat-toggle.js +27 -26
- package/dist/collection/components/rtk-clock/rtk-clock.js +3 -3
- package/dist/collection/components/rtk-confirmation-modal/rtk-confirmation-modal.js +1 -1
- package/dist/collection/components/rtk-controlbar/rtk-controlbar.js +1 -1
- package/dist/collection/components/rtk-counter/rtk-counter.js +2 -2
- package/dist/collection/components/rtk-debugger-toggle/rtk-debugger-toggle.js +1 -1
- package/dist/collection/components/rtk-draft-attachment-view/rtk-draft-attachment-view.js +1 -1
- package/dist/collection/components/rtk-emoji-picker/rtk-emoji-picker.js +1 -1
- package/dist/collection/components/rtk-emoji-picker-button/rtk-emoji-picker-button.js +1 -1
- package/dist/collection/components/rtk-file-dropzone/rtk-file-dropzone.js +1 -1
- package/dist/collection/components/rtk-file-message/rtk-file-message.js +2 -2
- package/dist/collection/components/rtk-file-message-view/rtk-file-message-view.js +1 -1
- package/dist/collection/components/rtk-file-picker-button/rtk-file-picker-button.js +1 -1
- package/dist/collection/components/rtk-header/rtk-header.js +1 -1
- package/dist/collection/components/rtk-idle-screen/rtk-idle-screen.js +1 -1
- package/dist/collection/components/rtk-image-message/rtk-image-message.js +4 -4
- package/dist/collection/components/rtk-image-message-view/rtk-image-message-view.js +3 -3
- package/dist/collection/components/rtk-image-viewer/rtk-image-viewer.js +1 -1
- package/dist/collection/components/rtk-information-tooltip/rtk-information-tooltip.js +1 -1
- package/dist/collection/components/rtk-leave-button/rtk-leave-button.js +1 -1
- package/dist/collection/components/rtk-leave-meeting/rtk-leave-meeting.js +2 -2
- package/dist/collection/components/rtk-markdown-view/rtk-markdown-view.js +1 -1
- package/dist/collection/components/rtk-menu/rtk-menu.js +2 -2
- package/dist/collection/components/rtk-menu-item/rtk-menu-item.js +1 -1
- package/dist/collection/components/rtk-menu-list/rtk-menu-list.js +1 -1
- package/dist/collection/components/rtk-message-list-view/rtk-message-list-view.js +3 -3
- package/dist/collection/components/rtk-more-toggle/rtk-more-toggle.js +2 -2
- package/dist/collection/components/rtk-mute-all-confirmation/rtk-mute-all-confirmation.js +1 -1
- package/dist/collection/components/rtk-notification/rtk-notification.js +2 -2
- package/dist/collection/components/rtk-overlay-modal/rtk-overlay-modal.js +1 -1
- package/dist/collection/components/rtk-paginated-list/rtk-paginated-list.css +5 -5
- package/dist/collection/components/rtk-paginated-list/rtk-paginated-list.js +272 -256
- package/dist/collection/components/rtk-participant/rtk-participant.js +12 -12
- package/dist/collection/components/rtk-participant-setup/rtk-participant-setup.js +2 -2
- package/dist/collection/components/rtk-participants-audio/rtk-participants-audio.js +1 -1
- package/dist/collection/components/rtk-participants-stage-list/rtk-participants-stage-list.js +1 -1
- package/dist/collection/components/rtk-permissions-message/rtk-permissions-message.js +1 -1
- package/dist/collection/components/rtk-plugins/rtk-plugins.js +1 -1
- package/dist/collection/components/rtk-poll/rtk-poll.js +1 -1
- package/dist/collection/components/rtk-poll-form/rtk-poll-form.js +2 -2
- package/dist/collection/components/rtk-polls/rtk-polls.js +3 -3
- package/dist/collection/components/rtk-recording-indicator/rtk-recording-indicator.js +1 -1
- package/dist/collection/components/rtk-screenshare-view/rtk-screenshare-view.js +5 -5
- package/dist/collection/components/rtk-settings-toggle/rtk-settings-toggle.js +1 -1
- package/dist/collection/components/rtk-spinner/rtk-spinner.js +1 -1
- package/dist/collection/components/rtk-spotlight-grid/rtk-spotlight-grid.js +2 -2
- package/dist/collection/components/rtk-stage/rtk-stage.js +1 -1
- package/dist/collection/components/rtk-switch/rtk-switch.js +1 -1
- package/dist/collection/components/rtk-text-composer-view/rtk-text-composer-view.js +1 -1
- package/dist/collection/components/rtk-text-message/rtk-text-message.js +2 -2
- package/dist/collection/components/rtk-text-message-view/rtk-text-message-view.js +1 -1
- package/dist/collection/components/rtk-tooltip/rtk-tooltip.js +1 -1
- package/dist/collection/components/rtk-transcript/rtk-transcript.js +1 -1
- package/dist/collection/components/rtk-virtualized-list/rtk-virtualized-participant-list.js +2 -2
- package/dist/collection/components/rtk-waiting-screen/rtk-waiting-screen.js +1 -1
- package/dist/components/{p-8479343e.js → p-00bb4abb.js} +6 -6
- package/dist/components/{p-12ae623e.js → p-02b840f8.js} +3 -3
- package/dist/components/{p-20290ade.js → p-0b2b3442.js} +2 -2
- package/dist/components/p-0d472019.js +362 -0
- package/dist/components/{p-b74221b4.js → p-0e5cc539.js} +2 -2
- package/dist/components/{p-7b344a65.js → p-0f2de0f8.js} +5 -5
- package/dist/components/{p-b30f3c49.js → p-107e55c1.js} +1 -1
- package/dist/components/{p-7965a1a6.js → p-1a9e3806.js} +1 -1
- package/dist/components/{p-e31889d3.js → p-1f5a4682.js} +2 -2
- package/dist/components/{p-b9b8697d.js → p-2309fb19.js} +2 -2
- package/dist/components/{p-95e51bef.js → p-241a8245.js} +1 -1
- package/dist/components/{p-402db72e.js → p-2447a26f.js} +2 -2
- package/dist/components/{p-4a84c913.js → p-28170a8d.js} +9 -9
- package/dist/components/{p-86f18b68.js → p-294cda89.js} +3 -3
- package/dist/components/{p-cd790a43.js → p-2a65883d.js} +1 -1
- package/dist/components/{p-9936031d.js → p-32c6e86d.js} +20 -20
- package/dist/components/{p-020800ee.js → p-39e8b34a.js} +1 -1
- package/dist/components/{p-8f381eef.js → p-3e58e0f3.js} +1 -1
- package/dist/components/{p-c8583d9b.js → p-43d6a221.js} +2 -2
- package/dist/components/{p-828db489.js → p-45220ce9.js} +2 -2
- package/dist/components/{p-011adf66.js → p-46d99dd9.js} +2 -2
- package/dist/components/{p-578d73e5.js → p-48acb953.js} +1 -1
- package/dist/components/{p-89cfd513.js → p-4902c5cf.js} +1 -1
- package/dist/components/{p-40589702.js → p-4aede34c.js} +1 -1
- package/dist/components/{p-0e80bae4.js → p-4e5a54c2.js} +10 -10
- package/dist/components/{p-5b66b8f3.js → p-4ebf9684.js} +1 -1
- package/dist/components/{p-28d51137.js → p-540d8eb9.js} +1 -1
- package/dist/components/{p-4bfb4f60.js → p-5476e3f3.js} +2 -2
- package/dist/components/{p-40b1fef2.js → p-5669b6e7.js} +4 -4
- package/dist/components/{p-9d40e041.js → p-598dc3f2.js} +2 -2
- package/dist/components/{p-ea6b5bf5.js → p-616ae7ab.js} +2 -2
- package/dist/components/{p-9c3ca56e.js → p-6739a399.js} +2 -2
- package/dist/components/{p-597543af.js → p-713c7ed7.js} +3 -3
- package/dist/components/{p-966273a8.js → p-7148ec6a.js} +1 -1
- package/dist/components/{p-ce77fdfc.js → p-761c0e78.js} +1 -1
- package/dist/components/{p-a0a0867a.js → p-7f489600.js} +1 -1
- package/dist/components/{p-520dccab.js → p-819cb785.js} +1 -1
- package/dist/components/{p-2e3c0084.js → p-89025409.js} +3 -3
- package/dist/components/{p-bed61d79.js → p-8cfdac0d.js} +5 -5
- package/dist/components/{p-757856f4.js → p-8d6b21d5.js} +3 -3
- package/dist/components/{p-35af8a84.js → p-a25f3aca.js} +2 -2
- package/dist/components/{p-5f0f8967.js → p-a51db0d6.js} +16 -16
- package/dist/components/{p-c544502e.js → p-a73665b4.js} +4 -4
- package/dist/components/{p-b3447e0c.js → p-a8a6496d.js} +1 -1
- package/dist/components/{p-53332481.js → p-ae376177.js} +12 -12
- package/dist/components/{p-5739b5f1.js → p-af3b99f4.js} +2 -2
- package/dist/components/{p-11a16ac3.js → p-bb4983b8.js} +2 -2
- package/dist/components/{p-3a1dbc0d.js → p-c334f0e5.js} +2 -2
- package/dist/components/{p-d2ce1170.js → p-cf8f725b.js} +1 -1
- package/dist/components/{p-157c1dc9.js → p-d765dbe4.js} +6 -6
- package/dist/components/{p-2eb35b99.js → p-da9018ea.js} +6 -6
- package/dist/components/{p-0ca31fce.js → p-dc3143c0.js} +2 -2
- package/dist/components/{p-ab842e10.js → p-e0510925.js} +1 -1
- package/dist/components/{p-09d1805e.js → p-eeb37b16.js} +1 -1
- package/dist/components/{p-d3588666.js → p-fa476519.js} +5 -5
- package/dist/components/{p-85990be7.js → p-fb836f65.js} +1 -1
- package/dist/components/{p-668f57d0.js → p-fb900e8f.js} +2 -2
- package/dist/components/rtk-ai-toggle.js +2 -2
- package/dist/components/rtk-ai-transcriptions.js +1 -1
- package/dist/components/rtk-ai.js +1 -1
- package/dist/components/rtk-audio-grid.js +1 -1
- package/dist/components/rtk-audio-tile.js +2 -2
- package/dist/components/rtk-avatar.js +1 -1
- package/dist/components/rtk-breakout-room-manager.js +1 -1
- package/dist/components/rtk-breakout-room-participants.js +1 -1
- package/dist/components/rtk-breakout-rooms-manager.js +1 -1
- package/dist/components/rtk-breakout-rooms-toggle.js +2 -2
- package/dist/components/rtk-broadcast-message-modal.js +1 -1
- package/dist/components/rtk-camera-toggle.js +3 -3
- package/dist/components/rtk-caption-toggle.js +2 -2
- package/dist/components/rtk-channel-creator.js +4 -4
- package/dist/components/rtk-channel-details.js +1 -1
- package/dist/components/rtk-channel-header.js +4 -4
- package/dist/components/rtk-channel-selector-ui.js +4 -4
- package/dist/components/rtk-channel-selector-view.js +1 -1
- package/dist/components/rtk-chat-composer-ui.js +4 -4
- package/dist/components/rtk-chat-composer-view.js +1 -1
- package/dist/components/rtk-chat-message.js +1 -1
- package/dist/components/rtk-chat-messages-ui-paginated.js +1 -1
- package/dist/components/rtk-chat-messages-ui.js +14 -14
- package/dist/components/rtk-chat-search-results.js +11 -11
- package/dist/components/rtk-chat-toggle.js +30 -26
- package/dist/components/rtk-chat.js +1 -1
- package/dist/components/rtk-clock.js +3 -3
- package/dist/components/rtk-confirmation-modal.js +1 -1
- package/dist/components/rtk-controlbar-button.js +1 -1
- package/dist/components/rtk-controlbar.js +1 -1
- package/dist/components/rtk-counter.js +1 -1
- package/dist/components/rtk-debugger-toggle.js +3 -3
- package/dist/components/rtk-dialog-manager.js +13 -13
- package/dist/components/rtk-draft-attachment-view.js +1 -1
- package/dist/components/rtk-emoji-picker-button.js +1 -1
- package/dist/components/rtk-emoji-picker.js +1 -1
- package/dist/components/rtk-file-dropzone.js +1 -1
- package/dist/components/rtk-file-message-view.js +1 -1
- package/dist/components/rtk-file-message.js +1 -1
- package/dist/components/rtk-file-picker-button.js +1 -1
- package/dist/components/rtk-fullscreen-toggle.js +1 -1
- package/dist/components/rtk-grid-pagination.js +1 -1
- package/dist/components/rtk-grid.js +4 -4
- package/dist/components/rtk-header.js +1 -1
- package/dist/components/rtk-idle-screen.js +2 -2
- package/dist/components/rtk-image-message-view.js +1 -1
- package/dist/components/rtk-image-message.js +1 -1
- package/dist/components/rtk-image-viewer.js +1 -1
- package/dist/components/rtk-information-tooltip.js +1 -1
- package/dist/components/rtk-leave-button.js +3 -3
- package/dist/components/rtk-leave-meeting.js +1 -1
- package/dist/components/rtk-livestream-player.js +1 -1
- package/dist/components/rtk-livestream-toggle.js +2 -2
- package/dist/components/rtk-markdown-view.js +1 -1
- package/dist/components/rtk-meeting-title.js +1 -1
- package/dist/components/rtk-meeting.js +21 -21
- package/dist/components/rtk-menu-item.js +1 -1
- package/dist/components/rtk-menu-list.js +1 -1
- package/dist/components/rtk-menu.js +1 -1
- package/dist/components/rtk-message-list-view.js +4 -4
- package/dist/components/rtk-message-view.js +1 -1
- package/dist/components/rtk-mic-toggle.js +3 -3
- package/dist/components/rtk-mixed-grid.js +3 -3
- package/dist/components/rtk-more-toggle.js +4 -4
- package/dist/components/rtk-mute-all-button.js +3 -3
- package/dist/components/rtk-mute-all-confirmation.js +1 -1
- package/dist/components/rtk-notification.js +1 -1
- package/dist/components/rtk-notifications.js +1 -1
- package/dist/components/rtk-overlay-modal.js +1 -1
- package/dist/components/rtk-paginated-list.js +1 -1
- package/dist/components/rtk-participant-setup.js +2 -2
- package/dist/components/rtk-participant.js +1 -1
- package/dist/components/rtk-participants-audio.js +1 -1
- package/dist/components/rtk-participants-stage-list.js +1 -1
- package/dist/components/rtk-participants-stage-queue.js +1 -1
- package/dist/components/rtk-participants-toggle.js +2 -2
- package/dist/components/rtk-participants-viewer-list.js +1 -1
- package/dist/components/rtk-participants-waiting-list.js +1 -1
- package/dist/components/rtk-participants.js +11 -11
- package/dist/components/rtk-permissions-message.js +1 -1
- package/dist/components/rtk-pip-toggle.js +2 -2
- package/dist/components/rtk-plugins-toggle.js +2 -2
- package/dist/components/rtk-plugins.js +1 -1
- package/dist/components/rtk-poll-form.js +1 -1
- package/dist/components/rtk-poll.js +1 -1
- package/dist/components/rtk-polls-toggle.js +2 -2
- package/dist/components/rtk-polls.js +1 -1
- package/dist/components/rtk-recording-indicator.js +1 -1
- package/dist/components/rtk-recording-toggle.js +2 -2
- package/dist/components/rtk-screen-share-toggle.js +3 -3
- package/dist/components/rtk-screenshare-view.js +6 -6
- package/dist/components/rtk-settings-audio.js +1 -1
- package/dist/components/rtk-settings-toggle.js +3 -3
- package/dist/components/rtk-settings-video.js +1 -1
- package/dist/components/rtk-settings.js +3 -3
- package/dist/components/rtk-setup-screen.js +1 -1
- package/dist/components/rtk-sidebar.js +5 -5
- package/dist/components/rtk-spinner.js +1 -1
- package/dist/components/rtk-spotlight-grid.js +2 -2
- package/dist/components/rtk-spotlight-indicator.js +1 -1
- package/dist/components/rtk-stage-toggle.js +3 -3
- package/dist/components/rtk-stage.js +1 -1
- package/dist/components/rtk-switch.js +1 -1
- package/dist/components/rtk-tab-bar.js +1 -1
- package/dist/components/rtk-text-composer-view.js +1 -1
- package/dist/components/rtk-text-message-view.js +1 -1
- package/dist/components/rtk-text-message.js +1 -1
- package/dist/components/rtk-tooltip.js +1 -1
- package/dist/components/rtk-transcript.js +1 -1
- package/dist/components/rtk-transcripts.js +1 -1
- package/dist/components/rtk-virtualized-participant-list.js +1 -1
- package/dist/components/rtk-waiting-screen.js +1 -1
- package/dist/docs/docs-components.json +44 -33
- package/dist/esm/loader.js +370 -354
- package/dist/esm/realtimekit-ui.js +1 -1
- package/dist/esm/rtk-ai-transcriptions.entry.js +1 -1
- package/dist/esm/rtk-audio-grid.entry.js +1 -1
- package/dist/esm/rtk-audio-visualizer_4.entry.js +1 -1
- package/dist/esm/rtk-avatar_24.entry.js +242 -232
- package/dist/esm/rtk-breakout-room-manager_3.entry.js +4 -4
- package/dist/esm/rtk-breakout-rooms-manager_9.entry.js +8 -8
- package/dist/esm/rtk-channel-creator.entry.js +2 -2
- package/dist/esm/rtk-channel-details.entry.js +1 -1
- package/dist/esm/rtk-channel-selector-ui.entry.js +2 -2
- package/dist/esm/rtk-chat-message.entry.js +2 -2
- package/dist/esm/rtk-chat-messages-ui.entry.js +3 -3
- package/dist/esm/rtk-chat-search-results.entry.js +1 -1
- package/dist/esm/rtk-chat-toggle.entry.js +27 -22
- package/dist/esm/rtk-clock.entry.js +3 -3
- package/dist/esm/rtk-controlbar.entry.js +1 -1
- package/dist/esm/rtk-debugger-toggle.entry.js +1 -1
- package/dist/esm/rtk-file-dropzone.entry.js +1 -1
- package/dist/esm/rtk-file-message_3.entry.js +8 -8
- package/dist/esm/rtk-header.entry.js +1 -1
- package/dist/esm/rtk-idle-screen.entry.js +1 -1
- package/dist/esm/rtk-image-viewer.entry.js +1 -1
- package/dist/esm/rtk-information-tooltip.entry.js +1 -1
- package/dist/esm/rtk-leave-button.entry.js +1 -1
- package/dist/esm/rtk-message-list-view.entry.js +3 -3
- package/dist/esm/rtk-more-toggle.entry.js +2 -2
- package/dist/esm/rtk-notification.entry.js +2 -2
- package/dist/esm/rtk-participant-setup.entry.js +2 -2
- package/dist/esm/rtk-participant_2.entry.js +14 -14
- package/dist/esm/rtk-participants-audio.entry.js +1 -1
- package/dist/esm/rtk-participants-stage-list_4.entry.js +1 -1
- package/dist/esm/rtk-plugins_2.entry.js +4 -4
- package/dist/esm/rtk-poll_2.entry.js +3 -3
- package/dist/esm/rtk-recording-indicator.entry.js +1 -1
- package/dist/esm/rtk-screenshare-view.entry.js +5 -5
- package/dist/esm/rtk-settings-toggle.entry.js +1 -1
- package/dist/esm/rtk-spotlight-grid.entry.js +2 -2
- package/dist/esm/rtk-stage.entry.js +1 -1
- package/dist/esm/rtk-transcript.entry.js +1 -1
- package/dist/esm/rtk-waiting-screen.entry.js +1 -1
- package/dist/realtimekit-ui/{p-7660a4c1.entry.js → p-00445029.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-bb369808.entry.js → p-02c6b025.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-0fed7daa.entry.js → p-0baa78d7.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-0e2d6b1b.entry.js → p-1fe6003b.entry.js} +1 -1
- package/dist/realtimekit-ui/p-21d4bb9c.entry.js +1 -0
- package/dist/realtimekit-ui/{p-87f3b9a6.entry.js → p-2441260e.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-4822dc9f.entry.js → p-322957ed.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-f42c50db.entry.js → p-323d1aa4.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-39410e81.entry.js → p-44d69c6b.entry.js} +1 -1
- package/dist/realtimekit-ui/p-48c87789.entry.js +1 -0
- package/dist/realtimekit-ui/{p-cea6c6ac.entry.js → p-53680d55.entry.js} +1 -1
- package/dist/realtimekit-ui/p-54a88fdf.entry.js +1 -0
- package/dist/realtimekit-ui/{p-9cab7a57.entry.js → p-5892c1e0.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-73f489be.entry.js → p-612a8d25.entry.js} +1 -1
- package/dist/realtimekit-ui/p-64206b62.entry.js +1 -0
- package/dist/realtimekit-ui/{p-a62e84f9.entry.js → p-67ead213.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-f2ce302b.entry.js → p-6896e819.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-fea05f1c.entry.js → p-7a9a226e.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-9cad5a6d.entry.js → p-80e51a73.entry.js} +1 -1
- package/dist/realtimekit-ui/p-820dad23.entry.js +1 -0
- package/dist/realtimekit-ui/p-83db4de1.entry.js +1 -0
- package/dist/realtimekit-ui/{p-61d3e2d4.entry.js → p-85b3c0c4.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-0c071f00.entry.js → p-8778b3e6.entry.js} +1 -1
- package/dist/realtimekit-ui/p-a1408db4.entry.js +1 -0
- package/dist/realtimekit-ui/{p-c50f4cab.entry.js → p-a67e2a25.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-3e12d77a.entry.js → p-a680da64.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-bd226f59.entry.js → p-a7172c2d.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-cda80e2c.entry.js → p-a852e0cf.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-9dcd9e30.entry.js → p-ac6c8ebe.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-1dfe0269.entry.js → p-b25f7d7b.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-2c71cc53.entry.js → p-b51e813e.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-dded6ad0.entry.js → p-be5bdd0a.entry.js} +1 -1
- package/dist/realtimekit-ui/p-c5f704a3.entry.js +1 -0
- package/dist/realtimekit-ui/{p-d7a78f65.entry.js → p-cc226b51.entry.js} +1 -1
- package/dist/realtimekit-ui/{p-a25bb0ad.entry.js → p-cda276d6.entry.js} +1 -1
- package/dist/realtimekit-ui/p-d880fb69.entry.js +1 -0
- package/dist/realtimekit-ui/p-f457ae6f.entry.js +1 -0
- package/dist/realtimekit-ui/{p-a867b984.entry.js → p-f6c82f1b.entry.js} +1 -1
- package/dist/realtimekit-ui/p-fa86682c.entry.js +1 -0
- package/dist/realtimekit-ui/realtimekit-ui.esm.js +1 -1
- package/dist/types/components/rtk-chat-toggle/rtk-chat-toggle.d.ts +4 -6
- package/dist/types/components/rtk-paginated-list/rtk-paginated-list.d.ts +68 -53
- package/dist/types/components.d.ts +9 -5
- package/package.json +1 -1
- package/dist/components/p-78f91ffe.js +0 -357
- package/dist/realtimekit-ui/p-02889d02.entry.js +0 -1
- package/dist/realtimekit-ui/p-09fb29e7.entry.js +0 -1
- package/dist/realtimekit-ui/p-260fc2ed.entry.js +0 -1
- package/dist/realtimekit-ui/p-32211408.entry.js +0 -1
- package/dist/realtimekit-ui/p-48c76360.entry.js +0 -1
- package/dist/realtimekit-ui/p-4d31d165.entry.js +0 -1
- package/dist/realtimekit-ui/p-51c72bc8.entry.js +0 -1
- package/dist/realtimekit-ui/p-b58dc07c.entry.js +0 -1
- package/dist/realtimekit-ui/p-c96e2a96.entry.js +0 -1
- package/dist/realtimekit-ui/p-d194317d.entry.js +0 -1
- 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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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)
|
|
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
|
-
*
|
|
2083
|
-
*
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
* is
|
|
2089
|
-
*/
|
|
2090
|
-
this.
|
|
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
|
-
*
|
|
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
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
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
|
-
|
|
2121
|
-
this.
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
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
|
-
*
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
*
|
|
2264
|
-
*
|
|
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
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
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
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
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 =
|
|
2257
|
+
const data = await this.fetchData(this.oldTS - 1, this.pageSize, true);
|
|
2282
2258
|
this.isLoading = false;
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
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
|
-
*
|
|
2293
|
-
*
|
|
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
|
-
|
|
2296
|
-
this.
|
|
2297
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
if (this.
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
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
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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"]
|