@bcc-code/vue-bcc-chat-ui 7.2.3 → 7.2.6

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 (112) hide show
  1. package/dist/App.vue.d.ts +4 -0
  2. package/dist/FixtureApp.vue.d.ts +4 -0
  3. package/dist/auth.d.ts +3 -0
  4. package/dist/chat/accessToken.d.ts +11 -0
  5. package/dist/chat/avatar.d.ts +3 -0
  6. package/dist/chat/cacheScope.d.ts +13 -0
  7. package/dist/chat/client.d.ts +7 -0
  8. package/dist/chat/clipboardFiles.d.ts +5 -0
  9. package/dist/chat/conversationState.d.ts +17 -0
  10. package/dist/chat/data.d.ts +18 -0
  11. package/dist/chat/environment.d.ts +8 -0
  12. package/dist/chat/i18n/en.d.ts +151 -0
  13. package/dist/chat/i18n/nb.d.ts +151 -0
  14. package/dist/chat/i18n/types.d.ts +2 -0
  15. package/dist/chat/index.d.ts +240 -0
  16. package/dist/chat/localization.d.ts +17 -0
  17. package/dist/chat/mentions.d.ts +33 -0
  18. package/dist/chat/messageText.d.ts +21 -0
  19. package/dist/chat/mockClient.d.ts +13 -0
  20. package/dist/chat/offlineStore.d.ts +55 -0
  21. package/dist/chat/participants.d.ts +8 -0
  22. package/dist/chat/pinnedMessages.d.ts +12 -0
  23. package/dist/chat/publicChannelMessageFallback.d.ts +1 -0
  24. package/dist/chat/reactions.d.ts +8 -0
  25. package/dist/chat/richText.d.ts +9 -0
  26. package/dist/chat/runtime.d.ts +3 -0
  27. package/dist/chat/theme.d.ts +19 -0
  28. package/dist/chat/types.d.ts +409 -0
  29. package/dist/components/chat/BccChat.vue.d.ts +100 -0
  30. package/dist/components/chat/ChatStatusOverlay.vue.d.ts +34 -0
  31. package/dist/components/chat/publicContract.d.ts +44 -0
  32. package/dist/components/conversations/ConversationList.vue.d.ts +18 -0
  33. package/dist/components/conversations/UserProfileCard.vue.d.ts +9 -0
  34. package/dist/components/messages/ActionMessageRow.vue.d.ts +7 -0
  35. package/dist/components/messages/AudioStickyPlayer.vue.d.ts +12 -0
  36. package/dist/components/messages/ComposerActionsPopover.vue.d.ts +15 -0
  37. package/dist/components/messages/ComposerContextBanner.vue.d.ts +15 -0
  38. package/dist/components/messages/ComposerFormatMenu.vue.d.ts +19 -0
  39. package/dist/components/messages/ComposerLinkDialog.vue.d.ts +18 -0
  40. package/dist/components/messages/ComposerPollDialog.vue.d.ts +18 -0
  41. package/dist/components/messages/ComposerScheduleDialog.vue.d.ts +22 -0
  42. package/dist/components/messages/ComposerTriggerMenu.vue.d.ts +24 -0
  43. package/dist/components/messages/ConversationComposer.vue.d.ts +30 -0
  44. package/dist/components/messages/LinkPreviewCard.vue.d.ts +8 -0
  45. package/dist/components/messages/LinkifiedText.vue.d.ts +15 -0
  46. package/dist/components/messages/MessageAttachmentList.vue.d.ts +12 -0
  47. package/dist/components/messages/MessageComposer.vue.d.ts +59 -0
  48. package/dist/components/messages/MessageDateSeparator.vue.d.ts +7 -0
  49. package/dist/components/messages/MessageDeliveryStatus.vue.d.ts +8 -0
  50. package/dist/components/messages/MessageForwardedLabel.vue.d.ts +8 -0
  51. package/dist/components/messages/MessageItem.vue.d.ts +36 -0
  52. package/dist/components/messages/MessageItemHeader.vue.d.ts +8 -0
  53. package/dist/components/messages/MessageItemMenu.vue.d.ts +36 -0
  54. package/dist/components/messages/MessageItemMenuReactions.vue.d.ts +13 -0
  55. package/dist/components/messages/MessageItemReactions.vue.d.ts +16 -0
  56. package/dist/components/messages/MessageList.vue.d.ts +42 -0
  57. package/dist/components/messages/MessageListHeader.vue.d.ts +9 -0
  58. package/dist/components/messages/MessagePinnedLabel.vue.d.ts +4 -0
  59. package/dist/components/messages/MessagePollContent.vue.d.ts +14 -0
  60. package/dist/components/messages/MessageReactionList.vue.d.ts +14 -0
  61. package/dist/components/messages/MessageReplyQuote.vue.d.ts +12 -0
  62. package/dist/components/messages/MessageTextContent.vue.d.ts +12 -0
  63. package/dist/components/messages/PinnedMessagesBar.vue.d.ts +4 -0
  64. package/dist/components/overlays/ForwardMessageDialog.vue.d.ts +16 -0
  65. package/dist/components/overlays/FullscreenDialog.vue.d.ts +34 -0
  66. package/dist/components/overlays/MediaViewerDialog.vue.d.ts +12 -0
  67. package/dist/components/overlays/MessageInfoDialog.vue.d.ts +16 -0
  68. package/dist/components/overlays/PinnedMessagesDialog.vue.d.ts +20 -0
  69. package/dist/components/overlays/ReceiptSection.vue.d.ts +13 -0
  70. package/dist/components/overlays/ScheduledMessagesDialog.vue.d.ts +37 -0
  71. package/dist/components/shared/PersonAvatar.vue.d.ts +8 -0
  72. package/dist/composables/chat/index.d.ts +13 -0
  73. package/dist/composables/chat/useComposerContext.d.ts +44 -0
  74. package/dist/composables/chat/useConversationContext.d.ts +36 -0
  75. package/dist/composables/chat/useDialogsContext.d.ts +43 -0
  76. package/dist/composables/chat/useMessagesContext.d.ts +42 -0
  77. package/dist/composables/useAudioPlayer.d.ts +18 -0
  78. package/dist/composables/useChatActions.d.ts +21 -0
  79. package/dist/composables/useChatEventBus.d.ts +108 -0
  80. package/dist/composables/useComposerDrafts.d.ts +47 -0
  81. package/dist/composables/useComposerTriggers.d.ts +63 -0
  82. package/dist/composables/useConversationComposer.d.ts +16 -0
  83. package/dist/composables/useGroupMemberTracking.d.ts +33 -0
  84. package/dist/composables/useImageZoom.d.ts +26 -0
  85. package/dist/composables/useIsTouchUi.d.ts +4 -0
  86. package/dist/composables/useMessageActionMenu.d.ts +257 -0
  87. package/dist/composables/useMessageInfoDialog.d.ts +201 -0
  88. package/dist/composables/useMessageListScroll.d.ts +15 -0
  89. package/dist/composables/useMessageNavigation.d.ts +16 -0
  90. package/dist/composables/usePinnedMessages.d.ts +190 -0
  91. package/dist/composables/useRichTextComposer.d.ts +75 -0
  92. package/dist/demo/ApiExamplesPanel.vue.d.ts +8 -0
  93. package/dist/demo/CallDebugPanel.vue.d.ts +8 -0
  94. package/dist/demo/ChatShell.vue.d.ts +12 -0
  95. package/dist/demo/StatCard.vue.d.ts +17 -0
  96. package/dist/demo/ThemeModeToggle.vue.d.ts +17 -0
  97. package/dist/demo/useDemoThemeMode.d.ts +7 -0
  98. package/dist/{dist-CP-Tq-KK.js → dist-BJ6-Om37.js} +1 -1
  99. package/dist/dist-BJ6-Om37.js.map +1 -0
  100. package/dist/index.d.ts +11 -841
  101. package/dist/main.d.ts +0 -0
  102. package/dist/sfc-styles-entry.d.ts +1 -0
  103. package/dist/shims-vue.d.ts +6 -0
  104. package/dist/style.css +1 -1
  105. package/dist/vite-env.d.ts +1 -0
  106. package/dist/vue-bcc-chat-ui.js +6132 -5653
  107. package/dist/vue-bcc-chat-ui.js.map +1 -1
  108. package/dist/{web-CDfDePhG.js → web-DSJwqhTK.js} +2 -2
  109. package/dist/web-DSJwqhTK.js.map +1 -0
  110. package/package.json +8 -4
  111. package/dist/dist-CP-Tq-KK.js.map +0 -1
  112. package/dist/web-CDfDePhG.js.map +0 -1
@@ -0,0 +1,42 @@
1
+ import { ChatMessageItem } from '../../chat/types';
2
+ import { ChatTarget } from '../../composables/useChatEventBus';
3
+ import { ChatConversationItem } from '../..';
4
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
5
+ type __VLS_Props = {
6
+ /** Which target this list instance represents. Determines which context slice to use. */
7
+ target: ChatTarget;
8
+ /** Optional override to show/hide the list header for this pane. */
9
+ showHeader?: boolean;
10
+ /** Optional class applied to action-message rows rendered by MessageItem. */
11
+ actionMessageClass?: string;
12
+ /** Optional class applied to the inner action message pill/content row. */
13
+ actionMessageRowClass?: string;
14
+ /** Optional flag to hide the group actions for this pane. */
15
+ hideGroupActions?: boolean;
16
+ };
17
+ declare var __VLS_1: {
18
+ conversation: ChatConversationItem | null;
19
+ parentMessage: ChatMessageItem | null;
20
+ target: ChatTarget;
21
+ title: string;
22
+ subtitle: string;
23
+ memberCount: number;
24
+ }, __VLS_39: {};
25
+ type __VLS_Slots = {} & {
26
+ header?: (props: typeof __VLS_1) => any;
27
+ } & {
28
+ composer?: (props: typeof __VLS_39) => any;
29
+ };
30
+ declare const __VLS_base: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
31
+ anchorclick: (event: MouseEvent, url: string) => any;
32
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
33
+ onAnchorclick?: ((event: MouseEvent, url: string) => any) | undefined;
34
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
35
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
36
+ declare const _default: typeof __VLS_export;
37
+ export default _default;
38
+ type __VLS_WithSlots<T, S> = T & {
39
+ new (): {
40
+ $slots: S;
41
+ };
42
+ };
@@ -0,0 +1,9 @@
1
+ import { ChatConversationItem, ChatMessageItem } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ conversation: ChatConversationItem | null;
5
+ parentMessage?: ChatMessageItem | null;
6
+ };
7
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ declare const __VLS_export: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import { ChatMessageItem } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ message: ChatMessageItem;
5
+ currentUserId?: string;
6
+ pendingOptionKey?: string | null;
7
+ };
8
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
9
+ vote: (optionId: string) => any;
10
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onVote?: ((optionId: string) => any) | undefined;
12
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import { ChatMessageItem } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ message: ChatMessageItem;
5
+ disabled: boolean;
6
+ compact?: boolean;
7
+ };
8
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
9
+ toggle: (emoji: string) => any;
10
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onToggle?: ((emoji: string) => any) | undefined;
12
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { ChatMessageItem } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ message: ChatMessageItem;
5
+ };
6
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
7
+ open: () => any;
8
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onOpen?: (() => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { ChatMessageItem } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ message: ChatMessageItem;
5
+ };
6
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
7
+ anchorclick: (event: MouseEvent, url: string) => any;
8
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onAnchorclick?: ((event: MouseEvent, url: string) => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ declare const __VLS_export: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
@@ -0,0 +1,16 @@
1
+ import { ChatConversationItem, ForwardMessageTarget } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ open: boolean;
5
+ chats: ChatConversationItem[];
6
+ sending?: boolean;
7
+ };
8
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
9
+ close: () => any;
10
+ select: (target: ForwardMessageTarget) => any;
11
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ onClose?: (() => any) | undefined;
13
+ onSelect?: ((target: ForwardMessageTarget) => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
@@ -0,0 +1,34 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ type __VLS_Props = {
3
+ open: boolean;
4
+ title?: string;
5
+ subtitle?: string;
6
+ closeLabel?: string;
7
+ closeAriaLabel?: string;
8
+ };
9
+ declare var __VLS_19: {}, __VLS_21: {}, __VLS_23: {};
10
+ type __VLS_Slots = {} & {
11
+ actions?: (props: typeof __VLS_19) => any;
12
+ } & {
13
+ default?: (props: typeof __VLS_21) => any;
14
+ } & {
15
+ footer?: (props: typeof __VLS_23) => any;
16
+ };
17
+ declare const __VLS_base: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
18
+ close: () => any;
19
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ onClose?: (() => any) | undefined;
21
+ }>, {
22
+ title: string;
23
+ subtitle: string;
24
+ closeLabel: string;
25
+ closeAriaLabel: string;
26
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
27
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
28
+ declare const _default: typeof __VLS_export;
29
+ export default _default;
30
+ type __VLS_WithSlots<T, S> = T & {
31
+ new (): {
32
+ $slots: S;
33
+ };
34
+ };
@@ -0,0 +1,12 @@
1
+ import { ChatAttachmentItem } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ attachment: ChatAttachmentItem | null;
5
+ };
6
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
7
+ close: () => any;
8
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onClose?: (() => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,16 @@
1
+ import { ChatMessageItem, ChatMessageReceiptItem } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ open: boolean;
5
+ message: ChatMessageItem | null;
6
+ receipts: ChatMessageReceiptItem[];
7
+ loading: boolean;
8
+ error?: string | null;
9
+ };
10
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
11
+ close: () => any;
12
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ onClose?: (() => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
@@ -0,0 +1,20 @@
1
+ import { ChatMessageItem } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ open: boolean;
5
+ messages: ChatMessageItem[];
6
+ canUnpin?: boolean;
7
+ mentionNameByUid?: Record<string, string>;
8
+ conversationTitle?: string;
9
+ };
10
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
11
+ close: () => any;
12
+ unpin: (messageId: string) => any;
13
+ jump: (messageId: string) => any;
14
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ onClose?: (() => any) | undefined;
16
+ onUnpin?: ((messageId: string) => any) | undefined;
17
+ onJump?: ((messageId: string) => any) | undefined;
18
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import { ChatMessageReceiptItem } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ title: string;
5
+ receipts: ChatMessageReceiptItem[];
6
+ formatDateTime: (date?: Date) => string;
7
+ showHeader?: boolean;
8
+ };
9
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
10
+ showHeader: boolean;
11
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -0,0 +1,37 @@
1
+ import { ChatMessageItem } from '../../chat/types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ open: boolean;
5
+ loading: boolean;
6
+ messages: ChatMessageItem[];
7
+ conversationTitle?: string;
8
+ };
9
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
10
+ close: () => any;
11
+ remove: (message: ChatMessageItem) => any;
12
+ reschedule: (payload: {
13
+ messageId: number;
14
+ muid: string;
15
+ originalChatUid: string;
16
+ scheduleDate: string;
17
+ }) => any;
18
+ editText: (payload: {
19
+ message: ChatMessageItem;
20
+ nextText: string;
21
+ }) => any;
22
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
23
+ onClose?: (() => any) | undefined;
24
+ onRemove?: ((message: ChatMessageItem) => any) | undefined;
25
+ onReschedule?: ((payload: {
26
+ messageId: number;
27
+ muid: string;
28
+ originalChatUid: string;
29
+ scheduleDate: string;
30
+ }) => any) | undefined;
31
+ onEditText?: ((payload: {
32
+ message: ChatMessageItem;
33
+ nextText: string;
34
+ }) => any) | undefined;
35
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
36
+ declare const _default: typeof __VLS_export;
37
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ type __VLS_Props = {
3
+ image?: string;
4
+ name: string;
5
+ };
6
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Barrel export for the four focused chat subcontexts.
3
+ *
4
+ * @remarks
5
+ * Each subcontext owns a single domain of the chat component tree's shared
6
+ * state: conversation identity/permissions, message lists, composer drafts, and
7
+ * dialog overlays. Consumer components inject only the subcontexts they need,
8
+ * keeping coupling tight and surfaces small.
9
+ */
10
+ export { createConversationContext, provideConversationContext, useConversationContext, type ConversationContext, type CreateConversationContextOptions, } from './useConversationContext';
11
+ export { createMessagesContext, provideMessagesContext, useMessagesContext, type MessagesContext, type CreateMessagesContextOptions, } from './useMessagesContext';
12
+ export { createComposerContext, provideComposerContext, useComposerContext, type ComposerContext, type ComposerHandle, type CreateComposerContextOptions, } from './useComposerContext';
13
+ export { createDialogsContext, provideDialogsContext, useDialogsContext, type DialogsContext, type CreateDialogsContextOptions, } from './useDialogsContext';
@@ -0,0 +1,44 @@
1
+ import { ComputedRef, Ref, TemplateRef } from 'vue';
2
+ import { AttachmentUploadInput, ChatClient, ChatMessageItem, MessageSendOptions, PollComposerInput, ScheduleMessageInput } from '../../chat/types';
3
+ /** Minimal public interface exposed by a composer component via defineExpose. */
4
+ export interface ComposerHandle {
5
+ focusEditor: () => Promise<void>;
6
+ }
7
+ export interface ComposerContext {
8
+ readonly draft: Ref<string>;
9
+ readonly threadDraft: Ref<string>;
10
+ readonly composerResetSignal: Ref<number>;
11
+ readonly threadComposerResetSignal: Ref<number>;
12
+ readonly messageBeingRepliedTo: ComputedRef<ChatMessageItem | null>;
13
+ readonly messageBeingEdited: ComputedRef<ChatMessageItem | null>;
14
+ readonly offlineMode: ComputedRef<boolean>;
15
+ readonly pendingQueueCount: ComputedRef<number>;
16
+ readonly isSendingMessage: ComputedRef<boolean>;
17
+ readonly isSchedulingMessage: ComputedRef<boolean>;
18
+ resetMainComposer(): void;
19
+ resetThreadComposer(): void;
20
+ focusMainComposer(): void;
21
+ focusThreadComposer(): void;
22
+ shouldFocusThreadComposer(message: ChatMessageItem): boolean;
23
+ loadMainDraft(message: ChatMessageItem): void;
24
+ loadThreadDraft(message: ChatMessageItem): void;
25
+ sendMessage(): Promise<void>;
26
+ sendAttachment(input: AttachmentUploadInput): Promise<void>;
27
+ sendPoll(input: PollComposerInput): Promise<void>;
28
+ scheduleMessage(input: ScheduleMessageInput): Promise<void>;
29
+ sendThreadMessage(): Promise<void>;
30
+ sendThreadAttachment(input: AttachmentUploadInput): Promise<void>;
31
+ sendThreadPoll(input: PollComposerInput): Promise<void>;
32
+ }
33
+ export interface CreateComposerContextOptions {
34
+ chatClient: ComputedRef<ChatClient | null>;
35
+ sendOptions: ComputedRef<MessageSendOptions | undefined>;
36
+ mentionNameByUid: ComputedRef<Record<string, string>>;
37
+ /** Called after a message has been scheduled. */
38
+ afterSchedule: () => Promise<void>;
39
+ mainComposerRef?: TemplateRef<ComposerHandle | null>;
40
+ threadComposerRef?: TemplateRef<ComposerHandle | null>;
41
+ }
42
+ export declare function createComposerContext(options: CreateComposerContextOptions): ComposerContext;
43
+ export declare function provideComposerContext(ctx: ComposerContext): void;
44
+ export declare function useComposerContext(): ComposerContext;
@@ -0,0 +1,36 @@
1
+ import { ComputedRef } from 'vue';
2
+ import { MentionCandidate } from '../../chat/mentions';
3
+ import { ChatClient, ChatConversationItem, MessageSendOptions, ParticipantInfo } from '../../chat/types';
4
+ export interface ConversationContext {
5
+ /** The resolved ChatClient (from BccChat prop or global singleton). */
6
+ readonly client: ComputedRef<ChatClient | null>;
7
+ /** The currently active conversation. */
8
+ readonly conversation: ComputedRef<ChatConversationItem | null>;
9
+ /** UID of the authenticated user. */
10
+ readonly currentUserId: ComputedRef<string | undefined>;
11
+ readonly canUseMessageActions: ComputedRef<boolean>;
12
+ readonly canReact: ComputedRef<boolean>;
13
+ readonly canReply: ComputedRef<boolean>;
14
+ readonly canOpenThread: ComputedRef<boolean>;
15
+ readonly canPin: ComputedRef<boolean>;
16
+ readonly isReadOnly: ComputedRef<boolean>;
17
+ readonly isChannel: ComputedRef<boolean>;
18
+ readonly sendOptions: ComputedRef<MessageSendOptions | undefined>;
19
+ readonly mentionCandidates: ComputedRef<MentionCandidate[]>;
20
+ readonly mentionNameByUid: ComputedRef<Record<string, string>>;
21
+ }
22
+ export interface CreateConversationContextOptions {
23
+ chatClient: ComputedRef<ChatClient | null>;
24
+ selectedConversation: ComputedRef<ChatConversationItem | null>;
25
+ /** Returns prop-supplied read-only flag, or undefined to auto-detect. */
26
+ getPropIsReadOnly: () => boolean | undefined;
27
+ /** Returns prop-supplied send options, or undefined to auto-detect. */
28
+ getPropSendOptions: () => MessageSendOptions | undefined;
29
+ /** Display name override for the sender. */
30
+ getSenderDisplayName: () => string | undefined;
31
+ /** Live group members used for @mention suggestions. */
32
+ getMentionCandidates: () => ReadonlyArray<ParticipantInfo>;
33
+ }
34
+ export declare function createConversationContext(options: CreateConversationContextOptions): ConversationContext;
35
+ export declare function provideConversationContext(ctx: ConversationContext): void;
36
+ export declare function useConversationContext(): ConversationContext;
@@ -0,0 +1,43 @@
1
+ import { ComputedRef, Ref } from 'vue';
2
+ import { ChatClient, ChatConversationItem, ChatMessageItem, ChatMessageReceiptItem, ChatReactionDetailItem, ForwardMessageTarget } from '../../chat/types';
3
+ export interface DialogsContext {
4
+ readonly infoMessage: Ref<ChatMessageItem | null>;
5
+ readonly infoMessageReceipts: Ref<ChatMessageReceiptItem[]>;
6
+ readonly loadingMessageReceipts: Ref<boolean>;
7
+ readonly messageReceiptsError: Ref<string | null>;
8
+ readonly messageReceiptsByMessageId: Ref<Record<string, ChatMessageReceiptItem[]>>;
9
+ readonly loadingMessageReceiptIds: Ref<Record<string, boolean>>;
10
+ getMessageReceipts(message: ChatMessageItem): Promise<ChatMessageReceiptItem[]>;
11
+ openMessageInfo(message: ChatMessageItem): Promise<void>;
12
+ closeMessageInfo(): void;
13
+ readonly messageReactionsByMessageId: Ref<Record<string, ChatReactionDetailItem[]>>;
14
+ readonly loadingMessageReactionIds: Ref<Record<string, boolean>>;
15
+ getMessageReactions(message: ChatMessageItem): Promise<ChatReactionDetailItem[]>;
16
+ readonly hasScheduledMessages: ComputedRef<boolean>;
17
+ readonly showScheduledMessages: Ref<boolean>;
18
+ readonly loadingScheduledMessages: ComputedRef<boolean>;
19
+ readonly scheduledMessages: ComputedRef<ChatMessageItem[]>;
20
+ openScheduledMessages(): Promise<void>;
21
+ refreshScheduledMessages(): Promise<void>;
22
+ readonly showPinnedMessages: Ref<boolean>;
23
+ openPinnedMessages(): void;
24
+ closePinnedMessages(): void;
25
+ readonly forwardMessageSource: Ref<ChatMessageItem | null>;
26
+ readonly sendingForwardMessage: Ref<boolean>;
27
+ openForwardMessage(message: ChatMessageItem): void;
28
+ closeForwardMessage(): void;
29
+ sendForwardedMessage(target: ForwardMessageTarget): Promise<void>;
30
+ }
31
+ export interface CreateDialogsContextOptions {
32
+ chatClient: ComputedRef<ChatClient | null>;
33
+ selectedConversation: ComputedRef<ChatConversationItem | null>;
34
+ /** Whether the current user can send and schedule messages in the selected conversation. */
35
+ canScheduleMessages: () => boolean;
36
+ /** Whether the initial scheduled-messages dialog should be open. */
37
+ getInitialScheduledMessagesOpen: () => boolean;
38
+ /** Fallback error string shown when receipt fetch fails. */
39
+ fetchErrorFallback: string;
40
+ }
41
+ export declare function createDialogsContext(options: CreateDialogsContextOptions): DialogsContext;
42
+ export declare function provideDialogsContext(ctx: DialogsContext): void;
43
+ export declare function useDialogsContext(): DialogsContext;
@@ -0,0 +1,42 @@
1
+ import { ComputedRef, Ref } from 'vue';
2
+ import { ChatClient, ChatConversationItem, ChatMessageItem } from '../../chat/types';
3
+ export interface MessagesContext {
4
+ readonly messages: ComputedRef<ChatMessageItem[]>;
5
+ readonly loadingMessages: ComputedRef<boolean>;
6
+ readonly hasOlderMessages: ComputedRef<boolean>;
7
+ readonly loadingOlderMessages: ComputedRef<boolean>;
8
+ readonly threadMessages: ComputedRef<ChatMessageItem[]>;
9
+ readonly loadingThreadMessages: ComputedRef<boolean>;
10
+ readonly activeThreadParentMessage: ComputedRef<ChatMessageItem | null>;
11
+ readonly hasOlderThreadMessages: ComputedRef<boolean>;
12
+ readonly loadingOlderThreadMessages: ComputedRef<boolean>;
13
+ /** Pins of the active conversation, most recently pinned first. */
14
+ readonly pinnedMessages: ComputedRef<ChatMessageItem[]>;
15
+ /** Whether the message with this id is pinned. */
16
+ isMessagePinned(messageId: string): boolean;
17
+ /** True while the conversation is at the server-owned pin cap. */
18
+ readonly pinnedMessagesLimitReached: ComputedRef<boolean>;
19
+ readonly showDefaultEmptyState: ComputedRef<boolean>;
20
+ readonly isChatEmpty: ComputedRef<boolean>;
21
+ }
22
+ export interface CreateMessagesContextOptions {
23
+ chatClient: ComputedRef<ChatClient | null>;
24
+ selectedConversation: ComputedRef<ChatConversationItem | null>;
25
+ usesPublicContract: ComputedRef<boolean>;
26
+ loadingChat: Ref<boolean>;
27
+ /** Returns prop-supplied messages, or undefined to fall back to client. */
28
+ getPropMessages: () => ChatMessageItem[] | undefined;
29
+ /** Returns prop-supplied thread messages, or undefined to fall back. */
30
+ getPropThreadMessages: () => ChatMessageItem[] | undefined;
31
+ /** Returns prop-supplied loading flag, or undefined to fall back. */
32
+ getPropLoadingMessages: () => boolean | undefined;
33
+ /** Returns prop-supplied thread loading flag, or undefined to fall back. */
34
+ getPropLoadingThreadMessages: () => boolean | undefined;
35
+ /** Returns prop-supplied empty-state flag, or undefined for auto. */
36
+ getPropShowDefaultEmptyState: () => boolean | undefined;
37
+ /** Whether to filter out deleted messages. */
38
+ getHideDeletedMessages: () => boolean;
39
+ }
40
+ export declare function createMessagesContext(options: CreateMessagesContextOptions): MessagesContext;
41
+ export declare function provideMessagesContext(ctx: MessagesContext): void;
42
+ export declare function useMessagesContext(): MessagesContext;
@@ -0,0 +1,18 @@
1
+ import { Ref } from 'vue';
2
+ export interface UseAudioPlayerOptions {
3
+ /** Ref to the underlying `<audio>` element. */
4
+ audioRef: Ref<HTMLAudioElement | null>;
5
+ }
6
+ /**
7
+ * Composable that owns playback state and exposes the handlers required by a
8
+ * custom audio player (play/pause toggle plus a draggable seek bar).
9
+ */
10
+ export declare function useAudioPlayer(options: UseAudioPlayerOptions): {
11
+ isPlaying: Ref<boolean, boolean>;
12
+ currentTime: Ref<number, number>;
13
+ duration: Ref<number, number>;
14
+ togglePlay: () => void;
15
+ startSeek: () => void;
16
+ seek: (time: number) => void;
17
+ endSeek: () => void;
18
+ };
@@ -0,0 +1,21 @@
1
+ import { ComposerContext } from './chat/useComposerContext';
2
+ import { ConversationContext } from './chat/useConversationContext';
3
+ import { DialogsContext } from './chat/useDialogsContext';
4
+ import { ChatEventBus } from './useChatEventBus';
5
+ export interface UseChatActionsOptions {
6
+ /** Conversation identity and permissions. */
7
+ conversation: ConversationContext;
8
+ /** Composer draft/send state. */
9
+ composer: ComposerContext;
10
+ /** Dialog overlay state. */
11
+ dialogs: DialogsContext;
12
+ /** The event bus to subscribe to. */
13
+ bus: ChatEventBus;
14
+ }
15
+ /**
16
+ * Subscribes to all bus events and wires them to the appropriate business
17
+ * logic. Returns a teardown function (also registered via `onUnmounted`).
18
+ */
19
+ export declare function useChatActions({ conversation, composer, dialogs, bus }: UseChatActionsOptions): {
20
+ teardown: () => void;
21
+ };
@@ -0,0 +1,108 @@
1
+ import { AttachmentUploadInput, ChatMessageItem, PollComposerInput, ScheduleMessageInput } from '../chat/types';
2
+ /** Target identifier used to distinguish main-conversation from thread actions. */
3
+ export type ChatTarget = "main" | "thread";
4
+ /** All events that can flow through the chat event bus. */
5
+ export interface ChatBusEventMap {
6
+ /** User wants to reply to a message. */
7
+ "message:reply": ChatMessageItem;
8
+ /** User wants to edit a message. */
9
+ "message:edit": ChatMessageItem;
10
+ /** User wants to delete a message. */
11
+ "message:delete": ChatMessageItem;
12
+ /** User wants to view message delivery info. */
13
+ "message:info": ChatMessageItem;
14
+ /** User wants to open a thread for a message. */
15
+ "message:openThread": ChatMessageItem;
16
+ /** User wants to toggle a reaction on a message. */
17
+ "message:toggleReaction": {
18
+ message: ChatMessageItem;
19
+ emoji: string;
20
+ };
21
+ /** User wants to translate a message. */
22
+ "message:translate": ChatMessageItem;
23
+ /** User wants to vote on a poll option. */
24
+ "message:votePoll": {
25
+ message: ChatMessageItem;
26
+ optionId: string;
27
+ };
28
+ /** User wants to navigate to a referenced message. */
29
+ "message:openReference": string;
30
+ /** User wants to forward a message to another conversation. */
31
+ "message:forward": ChatMessageItem;
32
+ /** User wants to pin or unpin a message. */
33
+ "message:togglePin": ChatMessageItem;
34
+ /** User wants to unpin the message with this id. */
35
+ "message:unpin": string;
36
+ /** User pressed send (text or attachment). */
37
+ "composer:send": {
38
+ target: ChatTarget;
39
+ };
40
+ /** User attached a file and pressed send. */
41
+ "composer:sendAttachment": {
42
+ target: ChatTarget;
43
+ input: AttachmentUploadInput;
44
+ };
45
+ /** User composed and submitted a poll. */
46
+ "composer:sendPoll": {
47
+ target: ChatTarget;
48
+ input: PollComposerInput;
49
+ };
50
+ /** User scheduled a message. */
51
+ "composer:schedule": {
52
+ target: ChatTarget;
53
+ input: ScheduleMessageInput;
54
+ };
55
+ /** User cancelled a reply. */
56
+ "composer:cancelReply": undefined;
57
+ /** User cancelled an edit. */
58
+ "composer:cancelEdit": undefined;
59
+ /** User requested older messages. */
60
+ "list:loadOlder": {
61
+ target: ChatTarget;
62
+ };
63
+ /** Open the scheduled-messages dialog. */
64
+ "ui:openScheduled": undefined;
65
+ /** Open the pinned-messages dialog. */
66
+ "ui:openPinned": undefined;
67
+ /** Close any open composer actions popover. */
68
+ "ui:closeComposerActions": undefined;
69
+ /** Close the thread dialog. */
70
+ "ui:closeThread": undefined;
71
+ /** Reschedule a scheduled message. */
72
+ "ui:reschedule": {
73
+ messageId: number;
74
+ muid: string;
75
+ originalChatUid: string;
76
+ scheduleDate: string;
77
+ };
78
+ /** Remove (cancel) a scheduled message before it is sent. */
79
+ "ui:removeScheduled": ChatMessageItem;
80
+ /** Edit the text/caption of a scheduled message. */
81
+ "ui:editScheduledText": {
82
+ message: ChatMessageItem;
83
+ nextText: string;
84
+ };
85
+ }
86
+ /** Handler type that correctly handles both void and payload events. */
87
+ type EventHandler<T> = T extends undefined ? () => void : (payload: T) => void;
88
+ /** A typed event bus instance. */
89
+ export interface ChatEventBus {
90
+ /** Emit an event with an optional payload. */
91
+ emit<K extends keyof ChatBusEventMap>(event: K, ...args: ChatBusEventMap[K] extends undefined ? [] : [ChatBusEventMap[K]]): void;
92
+ /** Subscribe to an event. Returns an unsubscribe function. */
93
+ on<K extends keyof ChatBusEventMap>(event: K, handler: EventHandler<ChatBusEventMap[K]>): () => void;
94
+ /** Unsubscribe from an event. */
95
+ off<K extends keyof ChatBusEventMap>(event: K, handler: EventHandler<ChatBusEventMap[K]>): void;
96
+ }
97
+ /** Creates a new ChatEventBus instance. Called once by BccChat. */
98
+ export declare function createChatEventBus(): ChatEventBus;
99
+ /** Provides the event bus to descendant components. */
100
+ export declare function provideChatEventBus(bus: ChatEventBus): void;
101
+ /** Injects the event bus from an ancestor BccChat component. */
102
+ export declare function useChatBus(): ChatEventBus;
103
+ /**
104
+ * Convenience helper: subscribes to a bus event and auto-unsubscribes when the
105
+ * calling component is unmounted.
106
+ */
107
+ export declare function useBusListener<K extends keyof ChatBusEventMap>(bus: ChatEventBus, event: K, handler: EventHandler<ChatBusEventMap[K]>): void;
108
+ export {};