vue-parley 4.0.0

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 (202) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +276 -0
  3. package/dist/chat.css +3223 -0
  4. package/dist/chunks/Call-CTIujxDi.cjs +818 -0
  5. package/dist/chunks/Call-CTIujxDi.cjs.map +1 -0
  6. package/dist/chunks/Call-Dwuyd-Ut.mjs +818 -0
  7. package/dist/chunks/Call-Dwuyd-Ut.mjs.map +1 -0
  8. package/dist/chunks/index-D50Yn7q4.cjs +7031 -0
  9. package/dist/chunks/index-D50Yn7q4.cjs.map +1 -0
  10. package/dist/chunks/index-JU_JZkSC.mjs +7010 -0
  11. package/dist/chunks/index-JU_JZkSC.mjs.map +1 -0
  12. package/dist/chunks/session-B3KIrj3_.mjs +711 -0
  13. package/dist/chunks/session-B3KIrj3_.mjs.map +1 -0
  14. package/dist/chunks/session-BOfkV8PJ.cjs +711 -0
  15. package/dist/chunks/session-BOfkV8PJ.cjs.map +1 -0
  16. package/dist/fakes.cjs +335 -0
  17. package/dist/fakes.cjs.map +1 -0
  18. package/dist/fakes.mjs +335 -0
  19. package/dist/fakes.mjs.map +1 -0
  20. package/dist/index.cjs +24 -0
  21. package/dist/index.cjs.map +1 -0
  22. package/dist/index.mjs +24 -0
  23. package/dist/index.mjs.map +1 -0
  24. package/dist/types/app/components/ChatPage.vue.d.ts +60 -0
  25. package/dist/types/app/components/ChatPage.vue.d.ts.map +1 -0
  26. package/dist/types/app/components/call/Call.vue.d.ts +8 -0
  27. package/dist/types/app/components/call/Call.vue.d.ts.map +1 -0
  28. package/dist/types/app/components/chat/ChatBubble.vue.d.ts +64 -0
  29. package/dist/types/app/components/chat/ChatBubble.vue.d.ts.map +1 -0
  30. package/dist/types/app/components/chat/ChatInput.vue.d.ts +60 -0
  31. package/dist/types/app/components/chat/ChatInput.vue.d.ts.map +1 -0
  32. package/dist/types/app/components/chat/ChatMessages.vue.d.ts +45 -0
  33. package/dist/types/app/components/chat/ChatMessages.vue.d.ts.map +1 -0
  34. package/dist/types/app/components/chat/ChatPageBar.vue.d.ts +50 -0
  35. package/dist/types/app/components/chat/ChatPageBar.vue.d.ts.map +1 -0
  36. package/dist/types/app/components/chat/ChatProfileOverview.vue.d.ts +11 -0
  37. package/dist/types/app/components/chat/ChatProfileOverview.vue.d.ts.map +1 -0
  38. package/dist/types/app/components/chat/ChatView.vue.d.ts +244 -0
  39. package/dist/types/app/components/chat/ChatView.vue.d.ts.map +1 -0
  40. package/dist/types/app/components/chat/chat-bubbles/BubbleDivider.vue.d.ts +7 -0
  41. package/dist/types/app/components/chat/chat-bubbles/BubbleDivider.vue.d.ts.map +1 -0
  42. package/dist/types/app/components/chat/chat-bubbles/BubbleImages.vue.d.ts +13 -0
  43. package/dist/types/app/components/chat/chat-bubbles/BubbleImages.vue.d.ts.map +1 -0
  44. package/dist/types/app/components/chat/chat-bubbles/BubbleMeta.vue.d.ts +11 -0
  45. package/dist/types/app/components/chat/chat-bubbles/BubbleMeta.vue.d.ts.map +1 -0
  46. package/dist/types/app/components/chat/chat-bubbles/BubbleOptions.vue.d.ts +16 -0
  47. package/dist/types/app/components/chat/chat-bubbles/BubbleOptions.vue.d.ts.map +1 -0
  48. package/dist/types/app/components/chat/chat-bubbles/BubbleRequest.vue.d.ts +8 -0
  49. package/dist/types/app/components/chat/chat-bubbles/BubbleRequest.vue.d.ts.map +1 -0
  50. package/dist/types/app/components/chat/chat-bubbles/BubbleSelectionMark.vue.d.ts +7 -0
  51. package/dist/types/app/components/chat/chat-bubbles/BubbleSelectionMark.vue.d.ts.map +1 -0
  52. package/dist/types/app/components/chat/chat-bubbles/BubbleStatus.vue.d.ts +7 -0
  53. package/dist/types/app/components/chat/chat-bubbles/BubbleStatus.vue.d.ts.map +1 -0
  54. package/dist/types/app/components/chat/chat-bubbles/BubbleVideo.vue.d.ts +25 -0
  55. package/dist/types/app/components/chat/chat-bubbles/BubbleVideo.vue.d.ts.map +1 -0
  56. package/dist/types/app/components/chat/chat-bubbles/FileDisplay.vue.d.ts +13 -0
  57. package/dist/types/app/components/chat/chat-bubbles/FileDisplay.vue.d.ts.map +1 -0
  58. package/dist/types/app/components/chat/chat-bubbles/ImageGroupDisplay.vue.d.ts +14 -0
  59. package/dist/types/app/components/chat/chat-bubbles/ImageGroupDisplay.vue.d.ts.map +1 -0
  60. package/dist/types/app/components/chat/chat-bubbles/ReplyPreview.vue.d.ts +10 -0
  61. package/dist/types/app/components/chat/chat-bubbles/ReplyPreview.vue.d.ts.map +1 -0
  62. package/dist/types/app/components/chat/chat-bubbles/UploadProgressOverlay.vue.d.ts +10 -0
  63. package/dist/types/app/components/chat/chat-bubbles/UploadProgressOverlay.vue.d.ts.map +1 -0
  64. package/dist/types/app/components/chat/chat-bubbles/VoiceDisplay.vue.d.ts +12 -0
  65. package/dist/types/app/components/chat/chat-bubbles/VoiceDisplay.vue.d.ts.map +1 -0
  66. package/dist/types/app/components/chat/chat-input/AttachementFileDisplay.vue.d.ts +12 -0
  67. package/dist/types/app/components/chat/chat-input/AttachementFileDisplay.vue.d.ts.map +1 -0
  68. package/dist/types/app/components/chat/chat-input/InputActionBar.vue.d.ts +13 -0
  69. package/dist/types/app/components/chat/chat-input/InputActionBar.vue.d.ts.map +1 -0
  70. package/dist/types/app/components/chat/chat-input/InputAttachement.vue.d.ts +18 -0
  71. package/dist/types/app/components/chat/chat-input/InputAttachement.vue.d.ts.map +1 -0
  72. package/dist/types/app/components/chat/chat-input/PermissionPopup.vue.d.ts +8 -0
  73. package/dist/types/app/components/chat/chat-input/PermissionPopup.vue.d.ts.map +1 -0
  74. package/dist/types/app/components/chat/chat-input/RecordButton.vue.d.ts +27 -0
  75. package/dist/types/app/components/chat/chat-input/RecordButton.vue.d.ts.map +1 -0
  76. package/dist/types/app/components/chat/chat-input/RecordingStatus.vue.d.ts +12 -0
  77. package/dist/types/app/components/chat/chat-input/RecordingStatus.vue.d.ts.map +1 -0
  78. package/dist/types/app/components/chat/chat-input/VideoRecordDisplay.vue.d.ts +26 -0
  79. package/dist/types/app/components/chat/chat-input/VideoRecordDisplay.vue.d.ts.map +1 -0
  80. package/dist/types/app/components/chat/contact/ChatContactDisplay.vue.d.ts +8 -0
  81. package/dist/types/app/components/chat/contact/ChatContactDisplay.vue.d.ts.map +1 -0
  82. package/dist/types/app/components/chat/contact/ChatList.vue.d.ts +5 -0
  83. package/dist/types/app/components/chat/contact/ChatList.vue.d.ts.map +1 -0
  84. package/dist/types/app/components/chat/contact/ChatListSearch.vue.d.ts +16 -0
  85. package/dist/types/app/components/chat/contact/ChatListSearch.vue.d.ts.map +1 -0
  86. package/dist/types/app/components/chat/contact/ContactAvatar.vue.d.ts +10 -0
  87. package/dist/types/app/components/chat/contact/ContactAvatar.vue.d.ts.map +1 -0
  88. package/dist/types/app/components/chat/contact/ContactSkeleton.vue.d.ts +3 -0
  89. package/dist/types/app/components/chat/contact/ContactSkeleton.vue.d.ts.map +1 -0
  90. package/dist/types/app/components/chat/messages/FloatingDateHeader.vue.d.ts +9 -0
  91. package/dist/types/app/components/chat/messages/FloatingDateHeader.vue.d.ts.map +1 -0
  92. package/dist/types/app/components/chat/messages/MessagesSkeleton.vue.d.ts +8 -0
  93. package/dist/types/app/components/chat/messages/MessagesSkeleton.vue.d.ts.map +1 -0
  94. package/dist/types/app/components/chat/messages/ScrollToBottomButton.vue.d.ts +11 -0
  95. package/dist/types/app/components/chat/messages/ScrollToBottomButton.vue.d.ts.map +1 -0
  96. package/dist/types/app/components/chat/profile/FileDisplay.vue.d.ts +9 -0
  97. package/dist/types/app/components/chat/profile/FileDisplay.vue.d.ts.map +1 -0
  98. package/dist/types/app/components/general/ConfirmModal.vue.d.ts +21 -0
  99. package/dist/types/app/components/general/ConfirmModal.vue.d.ts.map +1 -0
  100. package/dist/types/app/components/general/FileFormatDisplay.vue.d.ts +16 -0
  101. package/dist/types/app/components/general/FileFormatDisplay.vue.d.ts.map +1 -0
  102. package/dist/types/app/components/general/IconButton.vue.d.ts +13 -0
  103. package/dist/types/app/components/general/IconButton.vue.d.ts.map +1 -0
  104. package/dist/types/app/components/general/LoadingStatus.vue.d.ts +16 -0
  105. package/dist/types/app/components/general/LoadingStatus.vue.d.ts.map +1 -0
  106. package/dist/types/app/components/general/MediaImage.vue.d.ts +30 -0
  107. package/dist/types/app/components/general/MediaImage.vue.d.ts.map +1 -0
  108. package/dist/types/app/components/general/NoDataDisplay.vue.d.ts +7 -0
  109. package/dist/types/app/components/general/NoDataDisplay.vue.d.ts.map +1 -0
  110. package/dist/types/app/components/general/ResponsiveDialog.vue.d.ts +28 -0
  111. package/dist/types/app/components/general/ResponsiveDialog.vue.d.ts.map +1 -0
  112. package/dist/types/app/components/general/SafeEmojiText.vue.d.ts +10 -0
  113. package/dist/types/app/components/general/SafeEmojiText.vue.d.ts.map +1 -0
  114. package/dist/types/app/components/global/BEmojiPicker.vue.d.ts +8 -0
  115. package/dist/types/app/components/global/BEmojiPicker.vue.d.ts.map +1 -0
  116. package/dist/types/app/components/global/BIcon.vue.d.ts +11 -0
  117. package/dist/types/app/components/global/BIcon.vue.d.ts.map +1 -0
  118. package/dist/types/app/components/global/BVirtualVerticalList.vue.d.ts +30 -0
  119. package/dist/types/app/components/global/BVirtualVerticalList.vue.d.ts.map +1 -0
  120. package/dist/types/app/composables/call/media.d.ts +204 -0
  121. package/dist/types/app/composables/call/media.d.ts.map +1 -0
  122. package/dist/types/app/composables/call/peer.d.ts +39 -0
  123. package/dist/types/app/composables/call/peer.d.ts.map +1 -0
  124. package/dist/types/app/composables/call/peers.d.ts +54 -0
  125. package/dist/types/app/composables/call/peers.d.ts.map +1 -0
  126. package/dist/types/app/composables/call/session.d.ts +284 -0
  127. package/dist/types/app/composables/call/session.d.ts.map +1 -0
  128. package/dist/types/app/composables/call/signaling.d.ts +36 -0
  129. package/dist/types/app/composables/call/signaling.d.ts.map +1 -0
  130. package/dist/types/app/composables/call/useCallUi.d.ts +27 -0
  131. package/dist/types/app/composables/call/useCallUi.d.ts.map +1 -0
  132. package/dist/types/app/composables/chat/useChatRecording.d.ts +75 -0
  133. package/dist/types/app/composables/chat/useChatRecording.d.ts.map +1 -0
  134. package/dist/types/app/composables/chat/useInputDraft.d.ts +14 -0
  135. package/dist/types/app/composables/chat/useInputDraft.d.ts.map +1 -0
  136. package/dist/types/app/composables/useAppPermissions.d.ts +25 -0
  137. package/dist/types/app/composables/useAppPermissions.d.ts.map +1 -0
  138. package/dist/types/app/composables/useAppToast.d.ts +13 -0
  139. package/dist/types/app/composables/useAppToast.d.ts.map +1 -0
  140. package/dist/types/app/composables/useAttachmentPicker.d.ts +18 -0
  141. package/dist/types/app/composables/useAttachmentPicker.d.ts.map +1 -0
  142. package/dist/types/app/composables/useCall.d.ts +91 -0
  143. package/dist/types/app/composables/useCall.d.ts.map +1 -0
  144. package/dist/types/app/composables/useChatMessageList.d.ts +18 -0
  145. package/dist/types/app/composables/useChatMessageList.d.ts.map +1 -0
  146. package/dist/types/app/composables/useDate.d.ts +7 -0
  147. package/dist/types/app/composables/useDate.d.ts.map +1 -0
  148. package/dist/types/app/composables/useDevice.d.ts +32 -0
  149. package/dist/types/app/composables/useDevice.d.ts.map +1 -0
  150. package/dist/types/app/composables/useFlippedVirtualScroll.d.ts +22 -0
  151. package/dist/types/app/composables/useFlippedVirtualScroll.d.ts.map +1 -0
  152. package/dist/types/app/composables/useHostI18n.d.ts +15 -0
  153. package/dist/types/app/composables/useHostI18n.d.ts.map +1 -0
  154. package/dist/types/app/composables/useLocalI18n.d.ts +5 -0
  155. package/dist/types/app/composables/useLocalI18n.d.ts.map +1 -0
  156. package/dist/types/app/composables/useLongPress.d.ts +6 -0
  157. package/dist/types/app/composables/useLongPress.d.ts.map +1 -0
  158. package/dist/types/app/composables/useRichTextEditor.d.ts +12 -0
  159. package/dist/types/app/composables/useRichTextEditor.d.ts.map +1 -0
  160. package/dist/types/app/directives/loading.d.ts +6 -0
  161. package/dist/types/app/directives/loading.d.ts.map +1 -0
  162. package/dist/types/app/index.d.ts +31 -0
  163. package/dist/types/app/index.d.ts.map +1 -0
  164. package/dist/types/app/plugin.d.ts +28 -0
  165. package/dist/types/app/plugin.d.ts.map +1 -0
  166. package/dist/types/app/provider/callProvider.d.ts +7 -0
  167. package/dist/types/app/provider/callProvider.d.ts.map +1 -0
  168. package/dist/types/app/stores/callStore.d.ts +1626 -0
  169. package/dist/types/app/stores/callStore.d.ts.map +1 -0
  170. package/dist/types/app/stores/chatStore.d.ts +126 -0
  171. package/dist/types/app/stores/chatStore.d.ts.map +1 -0
  172. package/dist/types/app/stores/mediaStore.d.ts +18 -0
  173. package/dist/types/app/stores/mediaStore.d.ts.map +1 -0
  174. package/dist/types/app/stores/messageStores.d.ts +2460 -0
  175. package/dist/types/app/stores/messageStores.d.ts.map +1 -0
  176. package/dist/types/app/stores/profileStore.d.ts +102 -0
  177. package/dist/types/app/stores/profileStore.d.ts.map +1 -0
  178. package/dist/types/app/types/components/chat-input.d.ts +4 -0
  179. package/dist/types/app/types/components/chat-input.d.ts.map +1 -0
  180. package/dist/types/app/types/components/menu-options.d.ts +7 -0
  181. package/dist/types/app/types/components/menu-options.d.ts.map +1 -0
  182. package/dist/types/app/types/components/modal.d.ts +17 -0
  183. package/dist/types/app/types/components/modal.d.ts.map +1 -0
  184. package/dist/types/app/types/index.d.ts +257 -0
  185. package/dist/types/app/types/index.d.ts.map +1 -0
  186. package/dist/types/app/utils/emojiParser.d.ts +5 -0
  187. package/dist/types/app/utils/emojiParser.d.ts.map +1 -0
  188. package/dist/types/app/utils/format.d.ts +4 -0
  189. package/dist/types/app/utils/format.d.ts.map +1 -0
  190. package/dist/types/fakes/backend.d.ts +25 -0
  191. package/dist/types/fakes/backend.d.ts.map +1 -0
  192. package/dist/types/fakes/call.d.ts +7 -0
  193. package/dist/types/fakes/call.d.ts.map +1 -0
  194. package/dist/types/fakes/data.d.ts +13 -0
  195. package/dist/types/fakes/data.d.ts.map +1 -0
  196. package/dist/types/fakes/index.d.ts +7 -0
  197. package/dist/types/fakes/index.d.ts.map +1 -0
  198. package/dist/types/fakes.d.ts +2 -0
  199. package/dist/types/i18n/locales/index.d.ts +3557 -0
  200. package/dist/types/i18n/locales/index.d.ts.map +1 -0
  201. package/dist/types/index.d.ts +2 -0
  202. package/package.json +98 -0
@@ -0,0 +1,27 @@
1
+ import { Ref } from 'vue';
2
+ import { RemoteStream } from './peers';
3
+ export interface CallUiOptions {
4
+ localStream: Ref<MediaStream | null>;
5
+ screenStream: Ref<MediaStream | null>;
6
+ remoteVideos: Ref<Record<string, RemoteStream>>;
7
+ remoteScreens: Ref<Record<string, RemoteStream>>;
8
+ /** Re-attach streams when this changes: minimizing swaps the <video> elements. */
9
+ isMinimized: () => boolean;
10
+ }
11
+ /** The call screen's view state, and keeping each <video> element showing the right stream. */
12
+ export declare function useCallUi(opts: CallUiOptions): {
13
+ localVideo: Ref<HTMLVideoElement | null, HTMLVideoElement | null>;
14
+ localScreen: Ref<HTMLVideoElement | null, HTMLVideoElement | null>;
15
+ remoteRefs: Ref<Record<string, HTMLVideoElement | null>, Record<string, HTMLVideoElement | null>>;
16
+ remoteScreenRefs: Ref<Record<string, HTMLVideoElement | undefined>, Record<string, HTMLVideoElement | undefined>>;
17
+ remoteParents: Ref<Record<string, HTMLElement>, Record<string, HTMLElement>>;
18
+ showControls: Ref<boolean, boolean>;
19
+ resetControlsTimeout: () => void;
20
+ isFullscreen: Ref<boolean, boolean>;
21
+ toggleFullscreen: () => void;
22
+ toggleRemote: (tileId: string, el?: HTMLElement) => void;
23
+ videoPaused: Ref<Record<string, boolean>, Record<string, boolean>>;
24
+ toggleVideoPause: (tileId: string, el: HTMLVideoElement | null | undefined) => void;
25
+ detachAll: () => void;
26
+ };
27
+ //# sourceMappingURL=useCallUi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCallUi.d.ts","sourceRoot":"","sources":["../../../../../app/composables/call/useCallUi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrC,YAAY,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACtC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAChD,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IACjD,kFAAkF;IAClF,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAID,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa;;;;;;;;;;2BA4Cb,MAAM,OAAO,WAAW;;+BAOpB,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,SAAS;;EA4ElF"}
@@ -0,0 +1,75 @@
1
+ import { Ref } from 'vue';
2
+ export declare function useChatRecording(inputWidth: Ref<number | undefined>, callbacks: {
3
+ onStart: () => void;
4
+ onCancel: () => void;
5
+ onSend?: (mediaUrl?: string) => void;
6
+ requestPermission: () => Promise<boolean>;
7
+ getMode?: () => "video" | "voice";
8
+ }): {
9
+ isRecording: Ref<boolean, boolean>;
10
+ isLocked: Ref<boolean, boolean>;
11
+ isPaused: Ref<boolean, boolean>;
12
+ formattedTime: globalThis.ComputedRef<string>;
13
+ dragOffset: Ref<{
14
+ x: number;
15
+ y: number;
16
+ }, {
17
+ x: number;
18
+ y: number;
19
+ } | {
20
+ x: number;
21
+ y: number;
22
+ }>;
23
+ isDragging: Ref<boolean, boolean>;
24
+ lockOpacity: globalThis.ComputedRef<0 | 1>;
25
+ cancelOpacity: globalThis.ComputedRef<number>;
26
+ isLongPress: Ref<boolean, boolean>;
27
+ onPointerDown: (event: PointerEvent) => void;
28
+ mediaStream: Ref<{
29
+ readonly active: boolean;
30
+ readonly id: string;
31
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
32
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
33
+ addTrack: (track: MediaStreamTrack) => void;
34
+ clone: () => MediaStream;
35
+ getAudioTracks: () => MediaStreamTrack[];
36
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
37
+ getTracks: () => MediaStreamTrack[];
38
+ getVideoTracks: () => MediaStreamTrack[];
39
+ removeTrack: (track: MediaStreamTrack) => void;
40
+ addEventListener: {
41
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
42
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
43
+ };
44
+ removeEventListener: {
45
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
46
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
47
+ };
48
+ dispatchEvent: (event: Event) => boolean;
49
+ } | null, MediaStream | {
50
+ readonly active: boolean;
51
+ readonly id: string;
52
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
53
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
54
+ addTrack: (track: MediaStreamTrack) => void;
55
+ clone: () => MediaStream;
56
+ getAudioTracks: () => MediaStreamTrack[];
57
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
58
+ getTracks: () => MediaStreamTrack[];
59
+ getVideoTracks: () => MediaStreamTrack[];
60
+ removeTrack: (track: MediaStreamTrack) => void;
61
+ addEventListener: {
62
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
63
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
64
+ };
65
+ removeEventListener: {
66
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
67
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
68
+ };
69
+ dispatchEvent: (event: Event) => boolean;
70
+ } | null>;
71
+ toggleCamera: () => Promise<void>;
72
+ togglePause: () => void;
73
+ stopRecording: (triggerSend?: boolean) => void;
74
+ };
75
+ //# sourceMappingURL=useChatRecording.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatRecording.d.ts","sourceRoot":"","sources":["../../../../../app/composables/chat/useChatRecording.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkC,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAE/D,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,EACnC,SAAS,EAAE;IACT,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC;CACnC;;;;;;;;;;;;;;;;;;;2BAyL6B,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+G3C"}
@@ -0,0 +1,14 @@
1
+ import { Ref } from 'vue';
2
+ interface DraftEditor {
3
+ messageText: Ref<string>;
4
+ setText: (text: string) => void;
5
+ }
6
+ /**
7
+ * Keeps the input's unsent text per conversation: saved as it is typed, swapped when the open
8
+ * conversation changes, and restored on mount. Text typed while editing a message is not a draft.
9
+ */
10
+ export declare function useInputDraft(editor: DraftEditor, isEditing: () => boolean): {
11
+ restoreDraft: () => void;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=useInputDraft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInputDraft.d.ts","sourceRoot":"","sources":["../../../../../app/composables/chat/useInputDraft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAIjD,UAAU,WAAW;IACnB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO;;EA8B1E"}
@@ -0,0 +1,25 @@
1
+ export type PopupState = "permission" | "mic-error" | "cam-error" | "mic-permission" | "cam-permission" | "screen-share-error" | "screen-share-permission";
2
+ export declare function useAppPermissions(): {
3
+ checkMediaStatus: () => Promise<{
4
+ mic: string;
5
+ cam: string;
6
+ }>;
7
+ requestMediaAccess: (need: "audio" | "video" | "both") => Promise<{
8
+ success: boolean;
9
+ hardwareWarning?: undefined;
10
+ error?: undefined;
11
+ } | {
12
+ success: boolean;
13
+ hardwareWarning: string;
14
+ error?: undefined;
15
+ } | {
16
+ success: boolean;
17
+ error: any;
18
+ hardwareWarning?: undefined;
19
+ }>;
20
+ requestLocation: () => Promise<GeolocationPosition>;
21
+ requestScreenShare: () => Promise<boolean>;
22
+ requestWithPopup: (state: PopupState) => Promise<boolean>;
23
+ getNativeScreenShare: () => Promise<MediaStream>;
24
+ };
25
+ //# sourceMappingURL=useAppPermissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppPermissions.d.ts","sourceRoot":"","sources":["../../../../app/composables/useAppPermissions.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,WAAW,GACX,WAAW,GACX,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,yBAAyB,CAAC;AAQ9B,wBAAgB,iBAAiB;;;;;+BAgBS,OAAO,GAAG,OAAO,GAAG,MAAM;;;;;;;;;;;;;2BAwChC,OAAO,CAAC,mBAAmB,CAAC;8BAOzB,OAAO,CAAC,OAAO,CAAC;8BAIpB,UAAU;gCAMJ,OAAO,CAAC,WAAW,CAAC;EAe5D"}
@@ -0,0 +1,13 @@
1
+ /** Rendered by `<Toast group="vue-parley" />` in ChatView, so the host's own toasts stay apart. */
2
+ export declare const TOAST_GROUP = "vue-parley";
3
+ declare const SEVERITY: {
4
+ readonly success: "success";
5
+ readonly error: "error";
6
+ readonly warning: "warn";
7
+ readonly info: "info";
8
+ };
9
+ export declare const useAppToast: () => {
10
+ openToast: (message: string, type?: keyof typeof SEVERITY) => void;
11
+ };
12
+ export {};
13
+ //# sourceMappingURL=useAppToast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppToast.d.ts","sourceRoot":"","sources":["../../../../app/composables/useAppToast.ts"],"names":[],"mappings":"AAEA,mGAAmG;AACnG,eAAO,MAAM,WAAW,eAAe,CAAC;AAExC,QAAA,MAAM,QAAQ;;;;;CAKJ,CAAC;AAEX,eAAO,MAAM,WAAW;yBAIX,MAAM,SACT,MAAM,OAAO,QAAQ;CAW9B,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface PickedImage {
2
+ file: File;
3
+ path: string;
4
+ }
5
+ export interface PickedFile extends PickedImage {
6
+ name: string;
7
+ format: string;
8
+ size: number;
9
+ }
10
+ /** Opens the browser's file chooser for images or files and hands back object URLs. */
11
+ export declare function useAttachmentPicker(handlers: {
12
+ onImages: (images: PickedImage[]) => void;
13
+ onFiles: (files: PickedFile[]) => void;
14
+ }): {
15
+ pickImages: () => void;
16
+ pickFiles: () => void;
17
+ };
18
+ //# sourceMappingURL=useAttachmentPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAttachmentPicker.d.ts","sourceRoot":"","sources":["../../../../app/composables/useAttachmentPicker.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAID,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE;IAC5C,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;CACxC;;;EAgCA"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * The view side of the running call, for Call.vue. The call itself (signalling, peers, media)
3
+ * lives in the call store, so unmounting this view doesn't end it.
4
+ */
5
+ export default function useCall(): {
6
+ participantCount: globalThis.ComputedRef<number>;
7
+ tileCount: globalThis.ComputedRef<number>;
8
+ localStream: globalThis.Ref<{
9
+ readonly active: boolean;
10
+ readonly id: string;
11
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
12
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
13
+ addTrack: (track: MediaStreamTrack) => void;
14
+ clone: () => MediaStream;
15
+ getAudioTracks: () => MediaStreamTrack[];
16
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
17
+ getTracks: () => MediaStreamTrack[];
18
+ getVideoTracks: () => MediaStreamTrack[];
19
+ removeTrack: (track: MediaStreamTrack) => void;
20
+ addEventListener: {
21
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
22
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
23
+ };
24
+ removeEventListener: {
25
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
26
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
27
+ };
28
+ dispatchEvent: (event: Event) => boolean;
29
+ } | null, MediaStream | {
30
+ readonly active: boolean;
31
+ readonly id: string;
32
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
33
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
34
+ addTrack: (track: MediaStreamTrack) => void;
35
+ clone: () => MediaStream;
36
+ getAudioTracks: () => MediaStreamTrack[];
37
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
38
+ getTracks: () => MediaStreamTrack[];
39
+ getVideoTracks: () => MediaStreamTrack[];
40
+ removeTrack: (track: MediaStreamTrack) => void;
41
+ addEventListener: {
42
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
43
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
44
+ };
45
+ removeEventListener: {
46
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
47
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
48
+ };
49
+ dispatchEvent: (event: Event) => boolean;
50
+ } | null>;
51
+ remoteVideos: globalThis.Ref<Record<string, import('./call/peers').RemoteStream>, Record<string, import('./call/peers').RemoteStream>>;
52
+ remoteScreens: globalThis.Ref<Record<string, import('./call/peers').RemoteStream>, Record<string, import('./call/peers').RemoteStream>>;
53
+ cameras: globalThis.Ref<{
54
+ readonly deviceId: string;
55
+ readonly groupId: string;
56
+ readonly kind: MediaDeviceKind;
57
+ readonly label: string;
58
+ toJSON: () => any;
59
+ }[], MediaDeviceInfo[] | {
60
+ readonly deviceId: string;
61
+ readonly groupId: string;
62
+ readonly kind: MediaDeviceKind;
63
+ readonly label: string;
64
+ toJSON: () => any;
65
+ }[]>;
66
+ isAudioOn: globalThis.Ref<boolean, boolean>;
67
+ isVideoOn: globalThis.Ref<boolean, boolean>;
68
+ isScreenSharing: globalThis.Ref<boolean, boolean>;
69
+ isFlashlightOn: globalThis.Ref<boolean, boolean>;
70
+ isFlashlightSupported: globalThis.ComputedRef<boolean>;
71
+ toggleAudio: () => void;
72
+ toggleVideo: () => void;
73
+ toggleFlashlight: () => Promise<void>;
74
+ toggleScreenShare: () => Promise<void>;
75
+ switchCamera: (deviceId: string) => Promise<void>;
76
+ endCall: () => void;
77
+ showCameraModal: globalThis.Ref<boolean, boolean>;
78
+ showControls: globalThis.Ref<boolean, boolean>;
79
+ resetControlsTimeout: () => void;
80
+ isFullscreen: globalThis.Ref<boolean, boolean>;
81
+ toggleFullscreen: () => void;
82
+ toggleRemote: (tileId: string, el?: HTMLElement) => void;
83
+ videoPaused: globalThis.Ref<Record<string, boolean>, Record<string, boolean>>;
84
+ toggleVideoPause: (tileId: string, el: HTMLVideoElement | null | undefined) => void;
85
+ localVideo: globalThis.Ref<HTMLVideoElement | null, HTMLVideoElement | null>;
86
+ localScreen: globalThis.Ref<HTMLVideoElement | null, HTMLVideoElement | null>;
87
+ remoteRefs: globalThis.Ref<Record<string, HTMLVideoElement | null>, Record<string, HTMLVideoElement | null>>;
88
+ remoteScreenRefs: globalThis.Ref<Record<string, HTMLVideoElement | undefined>, Record<string, HTMLVideoElement | undefined>>;
89
+ remoteParents: globalThis.Ref<Record<string, HTMLElement>, Record<string, HTMLElement>>;
90
+ };
91
+ //# sourceMappingURL=useCall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCall.d.ts","sourceRoot":"","sources":["../../../../app/composables/useCall.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAgBS,MAAM;;;;;;;;;;;;;;;EAyC7C"}
@@ -0,0 +1,18 @@
1
+ import { ComputedRef } from 'vue';
2
+ import { Message, ExtendedMessage } from '../types';
3
+ export declare function useChatMessageList(chatId: ComputedRef<string | null>): {
4
+ messages: ComputedRef<Message[]>;
5
+ reversedMessages: ComputedRef<ExtendedMessage[]>;
6
+ firstUnreadId: ComputedRef<string | null>;
7
+ isLoading: ComputedRef<boolean>;
8
+ animatingIds: globalThis.Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
9
+ deletingIds: globalThis.Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
10
+ fetchMessages: (page: number) => Promise<void>;
11
+ loadNextPage: () => void;
12
+ subscribeToBus: (callbacks: {
13
+ onSend: (hasMyMessage: boolean) => void;
14
+ onDelete: (ids: string[]) => void;
15
+ }) => void;
16
+ executeDelete: (idsToDelete: string[], onDone: () => void) => void;
17
+ };
18
+ //# sourceMappingURL=useChatMessageList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatMessageList.d.ts","sourceRoot":"","sources":["../../../../app/composables/useChatMessageList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAKxD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;;;;;;;0BAoEhC,MAAM;;gCA+EN;QACjC,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;QACxC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;KACnC;iCAzCmC,MAAM,EAAE,UAAU,MAAM,IAAI;EAqEjE"}
@@ -0,0 +1,7 @@
1
+ export declare const useDate: () => {
2
+ formatRelativeDate: (dateInput: string | Date) => string;
3
+ getYearsPassed: (date: Date) => number;
4
+ formatDateShort: (dateInput: string | Date) => string;
5
+ formatTime: (dateInput: string | Date) => string;
6
+ };
7
+ //# sourceMappingURL=useDate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDate.d.ts","sourceRoot":"","sources":["../../../../app/composables/useDate.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;oCAwBqB,MAAM,GAAG,IAAI,KAAG,MAAM;2BAuF/B,IAAI,KAAG,MAAM;iCAxBP,MAAM,GAAG,IAAI,KAAG,MAAM;4BAzE3B,MAAM,GAAG,IAAI,KAAG,MAAM;CAqHtD,CAAC"}
@@ -0,0 +1,32 @@
1
+ export interface DevicePlatform {
2
+ isTauri: boolean;
3
+ isTauriAndroid: boolean;
4
+ isTauriiOS: boolean;
5
+ isTauriDesktop: boolean;
6
+ isPWAInstalled: boolean;
7
+ isWeb: boolean;
8
+ }
9
+ export interface DeviceHardware {
10
+ hasMicrophone: boolean;
11
+ hasCamera: boolean;
12
+ isChecking: boolean;
13
+ error: string | null;
14
+ }
15
+ export declare function useDevice(): {
16
+ platform: {
17
+ readonly isTauri: boolean;
18
+ readonly isTauriAndroid: boolean;
19
+ readonly isTauriiOS: boolean;
20
+ readonly isTauriDesktop: boolean;
21
+ readonly isPWAInstalled: boolean;
22
+ readonly isWeb: boolean;
23
+ };
24
+ hardware: {
25
+ readonly hasMicrophone: boolean;
26
+ readonly hasCamera: boolean;
27
+ readonly isChecking: boolean;
28
+ readonly error: string | null;
29
+ };
30
+ refreshHardwareCheck: () => Promise<void>;
31
+ };
32
+ //# sourceMappingURL=useDevice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDevice.d.ts","sourceRoot":"","sources":["../../../../app/composables/useDevice.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,SAAS;;0BAfd,OAAO;iCACA,OAAO;6BACX,OAAO;iCACH,OAAO;iCACP,OAAO;wBAChB,OAAO;;;gCAIC,OAAO;4BACX,OAAO;6BACN,OAAO;wBACZ,MAAM,GAAG,IAAI;;;EAqFrB"}
@@ -0,0 +1,22 @@
1
+ import { Ref } from 'vue';
2
+ interface ScrollOptions {
3
+ scrollContainer: Ref<HTMLElement | null>;
4
+ hasCall: Ref<boolean>;
5
+ isLoading: Ref<boolean>;
6
+ isLocked: Ref<boolean>;
7
+ onLoadMore: () => void;
8
+ }
9
+ export declare function useFlippedVirtualScroll(options: ScrollOptions): {
10
+ virtualizer: Ref<import('@tanstack/vue-virtual').Virtualizer<HTMLElement, Element>, import('@tanstack/vue-virtual').Virtualizer<HTMLElement, Element>>;
11
+ headerOpacity: Ref<number, number>;
12
+ canScroll: globalThis.ComputedRef<boolean>;
13
+ topVisibleMessageIndex: Ref<number, number>;
14
+ handleScroll: () => void;
15
+ handleWheel: (e: WheelEvent) => void;
16
+ resetScroll: () => void;
17
+ cleanup: () => void;
18
+ setItemCount: (count: number) => void;
19
+ setGetItemKey: (fn: (index: number) => string | number) => void;
20
+ };
21
+ export {};
22
+ //# sourceMappingURL=useFlippedVirtualScroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFlippedVirtualScroll.d.ts","sourceRoot":"","sources":["../../../../app/composables/useFlippedVirtualScroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAG9C,UAAU,aAAa;IACrB,eAAe,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACxB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,aAAa;;;;;;qBAkFpC,UAAU;;;0BA4DV,MAAM;wBAGR,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM;EAIzD"}
@@ -0,0 +1,15 @@
1
+ import { App, ComputedRef } from 'vue';
2
+ export declare function provideHostI18n(app: App): void;
3
+ /**
4
+ * The host's current locale. Unlike useI18n(), works in a store as well as a component, so a
5
+ * store can be created anywhere (a Nuxt plugin, a route guard), not only in a component's setup.
6
+ */
7
+ export declare function useHostLocale(): ComputedRef<string>;
8
+ /**
9
+ * Translations for a store: `messages` on their own, following the host's locale. A component
10
+ * uses useLocalI18n() instead, which scopes them to the component.
11
+ */
12
+ export declare function useStoreI18n(messages: Record<string, any>): {
13
+ t: (key: string) => string;
14
+ };
15
+ //# sourceMappingURL=useHostI18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHostI18n.d.ts","sourceRoot":"","sources":["../../../../app/composables/useHostI18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAAG,EACR,KAAK,WAAW,EAGjB,MAAM,KAAK,CAAC;AAcb,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,QAGvC;AAoBD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,WAAW,CAAC,MAAM,CAAC,CAGnD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE,CAc1F"}
@@ -0,0 +1,5 @@
1
+ export default function useLocalI18n(...messages: Record<string, any>[]): import('vue-i18n').Composer<Record<string, any>, {}, {}, string, string, string>;
2
+ export declare function useDirection(): {
3
+ dir: globalThis.ComputedRef<"rtl" | "ltr">;
4
+ };
5
+ //# sourceMappingURL=useLocalI18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocalI18n.d.ts","sourceRoot":"","sources":["../../../../app/composables/useLocalI18n.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,oFAMtE;AAED,wBAAgB,YAAY;;EAgB3B"}
@@ -0,0 +1,6 @@
1
+ export declare function useLongPress(callback: (event: PointerEvent) => void): {
2
+ onPointerDown: (event: PointerEvent) => void;
3
+ onPointerMove: (event: PointerEvent) => void;
4
+ onPointerUp: () => void;
5
+ };
6
+ //# sourceMappingURL=useLongPress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLongPress.d.ts","sourceRoot":"","sources":["../../../../app/composables/useLongPress.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI;2BAIpC,YAAY;2BAUZ,YAAY;;EAsB3C"}
@@ -0,0 +1,12 @@
1
+ import { Ref } from 'vue';
2
+ export declare function useRichTextEditor(inputRef: Ref<HTMLDivElement | null>): {
3
+ messageText: Ref<string, string>;
4
+ isSelectingEmoji: Ref<boolean, boolean>;
5
+ saveCursorPosition: () => void;
6
+ handleContentInput: () => void;
7
+ handleEmojiSelect: (emoji: string, shouldBlurAfter?: boolean) => void;
8
+ clearInput: () => void;
9
+ setText: (text: string) => void;
10
+ adjustHeight: () => void;
11
+ };
12
+ //# sourceMappingURL=useRichTextEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRichTextEditor.d.ts","sourceRoot":"","sources":["../../../../app/composables/useRichTextEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAG9C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;;;;;+BAgClC,MAAM;;oBAkDjB,MAAM;;EAuB9B"}
@@ -0,0 +1,6 @@
1
+ import { Directive, DirectiveBinding } from 'vue';
2
+ declare const loadingDirective: Directive & {
3
+ getSSRProps?: (binding: DirectiveBinding) => Record<string, string>;
4
+ };
5
+ export default loadingDirective;
6
+ //# sourceMappingURL=loading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading.d.ts","sourceRoot":"","sources":["../../../../app/directives/loading.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAkBvD,QAAA,MAAM,gBAAgB,EAAE,SAAS,GAAG;IAClC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAkDrE,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { useCallStore } from './stores/callStore';
2
+ import { useChatStore } from './stores/chatStore';
3
+ import { useMessagesStore } from './stores/messageStores';
4
+ import { useMediaStore } from './stores/mediaStore';
5
+ import { useProfileStore } from './stores/profileStore';
6
+ export { default as ChatPage } from './components/ChatPage.vue';
7
+ export declare const Call: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
8
+ minimizedRef: HTMLDivElement;
9
+ pipVideoRef: HTMLVideoElement;
10
+ localScreen: HTMLVideoElement;
11
+ localVideo: HTMLVideoElement;
12
+ }, any>;
13
+ export { default as ChatList } from './components/chat/contact/ChatList.vue';
14
+ export { default as ChatConversation } from './components/chat/ChatView.vue';
15
+ export { default as ChatHeader } from './components/chat/ChatPageBar.vue';
16
+ export { default as ChatMessages } from './components/chat/ChatMessages.vue';
17
+ export { default as ChatInput } from './components/chat/ChatInput.vue';
18
+ export { default as ChatBubble } from './components/chat/ChatBubble.vue';
19
+ export { default as BVirtualVerticalList } from './components/global/BVirtualVerticalList.vue';
20
+ export { default as BEmojiPicker } from './components/global/BEmojiPicker.vue';
21
+ export { default as BIcon } from './components/global/BIcon.vue';
22
+ export * from './types';
23
+ export * from './stores/messageStores';
24
+ export * from './stores/chatStore';
25
+ export * from './stores/mediaStore';
26
+ export * from './stores/profileStore';
27
+ export { provideCallHandlers } from './provider/callProvider';
28
+ export { createChat } from './plugin';
29
+ export type { ChatOptions, ChatUser } from './plugin';
30
+ export { useChatStore, useCallStore, useMessagesStore, useMediaStore, useProfileStore, };
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../app/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEhE,eAAO,MAAM,IAAI;;;;;OAAmE,CAAC;AAIrF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAEjE,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Plugin } from 'vue';
2
+ import { CallHandlers, ChatHandlers, MediaHandlers, MessagesHandlers, ProfileHandlers } from './types';
3
+ export interface ChatUser {
4
+ id: string;
5
+ name: string;
6
+ avatar?: Blob;
7
+ }
8
+ export interface ChatOptions {
9
+ chat: ChatHandlers;
10
+ messages: MessagesHandlers;
11
+ media: MediaHandlers;
12
+ /** Needed for the profile panel's media and files tabs. */
13
+ profile?: ProfileHandlers;
14
+ /** Omit to leave calling out; `provideCallHandlers()` can still supply them later. */
15
+ call?: CallHandlers;
16
+ /** The signed-in user. Can also be set later through `useProfileStore()`. */
17
+ user?: ChatUser;
18
+ }
19
+ /**
20
+ * Wires the chat into an app in one call:
21
+ *
22
+ * app.use(createPinia()).use(i18n).use(PrimeVue, { theme }).use(createChat({ chat, messages, media, user }))
23
+ *
24
+ * Pinia, vue-i18n and PrimeVue must be installed first; the stores, translations and UI depend
25
+ * on them.
26
+ */
27
+ export declare function createChat(options: ChatOptions): Plugin;
28
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../app/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,KAAK,CAAC;AAGvC,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EAChB,MAAM,SAAS,CAAC;AAQjB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,sFAAsF;IACtF,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAsDvD"}
@@ -0,0 +1,7 @@
1
+ import { CallHandlers } from '../types';
2
+ /**
3
+ * Gives the chat its call handlers from inside a component's setup. `createChat({ call })` does
4
+ * the same app-wide; use this when the handlers only exist further down the tree.
5
+ */
6
+ export declare function provideCallHandlers(handlers: CallHandlers): void;
7
+ //# sourceMappingURL=callProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callProvider.d.ts","sourceRoot":"","sources":["../../../../app/provider/callProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,QAEzD"}