@mobilon-dev/chotto 0.3.106 → 0.3.107

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 (35) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue.js +2 -2
  3. package/dist/components/2_feed_elements/AudioMessage/AudioMessage.vue2.js +295 -268
  4. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue.js +2 -2
  5. package/dist/components/2_feed_elements/FileMessage/FileMessage.vue2.js +185 -158
  6. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +3 -3
  7. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +227 -200
  8. package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue.js +2 -2
  9. package/dist/components/2_feed_elements/MessageReactions/MessageReactions.vue2.js +62 -245
  10. package/dist/components/2_feed_elements/MessageReactions/MessageReactionsOverlay.vue.js +7 -0
  11. package/dist/components/2_feed_elements/MessageReactions/MessageReactionsOverlay.vue2.js +231 -0
  12. package/dist/components/2_feed_elements/MessageReactions/composables/usePositioning.js +25 -25
  13. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue.js +2 -2
  14. package/dist/components/2_feed_elements/StickerMessage/StickerMessage.vue2.js +209 -182
  15. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue.js +2 -2
  16. package/dist/components/2_feed_elements/TextMessage/TextMessage.vue2.js +190 -164
  17. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +3 -3
  18. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +208 -181
  19. package/dist/components/3_compounds/Feed/Feed.vue.js +1 -1
  20. package/dist/components/3_compounds/Feed/Feed.vue2.js +207 -197
  21. package/dist/components/3_compounds/Feed/composables/useFeedProgressiveRender.js +52 -49
  22. package/dist/components/3_compounds/Feed/composables/useFeedReactionsOverlay.js +34 -0
  23. package/dist/hooks/messages/useMessageActions.js +81 -70
  24. package/dist/hooks/messages/useMessageReactionsInFeed.js +53 -0
  25. package/dist/hooks/messages/useMessageReactionsMount.js +21 -0
  26. package/dist/index.js +149 -144
  27. package/dist/types/components/2_feed_elements/MessageReactions/MessageReactions.vue.d.ts +4 -71
  28. package/dist/types/components/2_feed_elements/MessageReactions/MessageReactionsOverlay.vue.d.ts +2 -0
  29. package/dist/types/components/2_feed_elements/MessageReactions/composables/usePositioning.d.ts +2 -1
  30. package/dist/types/components/3_compounds/Feed/composables/index.d.ts +1 -0
  31. package/dist/types/components/3_compounds/Feed/composables/useFeedReactionsOverlay.d.ts +52 -0
  32. package/dist/types/hooks/messages/index.d.ts +2 -0
  33. package/dist/types/hooks/messages/useMessageReactionsInFeed.d.ts +25 -0
  34. package/dist/types/hooks/messages/useMessageReactionsMount.d.ts +10 -0
  35. package/package.json +1 -1
@@ -0,0 +1,52 @@
1
+ import { type Ref } from 'vue';
2
+ import type { ReactionsMode } from '@/components/2_feed_elements/MessageReactions/composables';
3
+ import type { MessageReactions, Reply } from '@/types';
4
+ import type { OpenMessageMenuSource } from '@/hooks/messages/useMessageActions';
5
+ export interface FeedReactionsHandlers {
6
+ onToggleReaction: (payload: {
7
+ messageId: string | number;
8
+ key: string;
9
+ }) => void;
10
+ onAddReaction: (payload: {
11
+ messageId: string | number;
12
+ key: string;
13
+ }) => void;
14
+ onRemoveReaction: (payload: {
15
+ messageId: string | number;
16
+ key: string;
17
+ }) => void;
18
+ onMenu: (source?: OpenMessageMenuSource) => void;
19
+ }
20
+ export interface FeedReactionsTarget {
21
+ messageId: string | number;
22
+ anchorEl: HTMLElement;
23
+ chipsEl: HTMLElement | null;
24
+ reactions: MessageReactions | undefined;
25
+ reply: Reply | undefined;
26
+ replyEnabled: boolean;
27
+ menuEnabled: boolean;
28
+ mode: ReactionsMode;
29
+ enabled: boolean;
30
+ handlers: FeedReactionsHandlers;
31
+ /** Записать оптимистичное состояние реакций в объект сообщения ленты */
32
+ patchReactions: (next: MessageReactions) => void;
33
+ }
34
+ export interface FeedReactionsConsumerApi {
35
+ activate: (target: FeedReactionsTarget) => void;
36
+ handlePointerLeave: (event: PointerEvent, contentEl: HTMLElement | null, chipsEl?: HTMLElement | null) => void;
37
+ }
38
+ export interface FeedReactionsOverlayState {
39
+ activeTarget: Ref<FeedReactionsTarget | null>;
40
+ anchorRef: Ref<HTMLElement | null>;
41
+ }
42
+ type PanelBridge = {
43
+ onMessageEnter: () => void;
44
+ onMessageLeave: () => void;
45
+ isPanelOpen: () => boolean;
46
+ containsNode: (node: Node) => boolean;
47
+ };
48
+ export declare function registerFeedReactionsPanelBridge(bridge: PanelBridge | null): void;
49
+ export declare function provideFeedReactionsOverlay(): FeedReactionsOverlayState;
50
+ export declare function useFeedReactionsConsumer(): FeedReactionsConsumerApi | null;
51
+ export declare function useFeedReactionsOverlayState(): FeedReactionsOverlayState | null;
52
+ export {};
@@ -1,5 +1,7 @@
1
1
  export * from './useMessageActions';
2
2
  export * from './useMessageHoverActions';
3
+ export * from './useMessageReactionsMount';
4
+ export * from './useMessageReactionsInFeed';
3
5
  export * from './calculateMessageMenuPosition';
4
6
  export * from './useMessageMenuActions';
5
7
  export * from './useMessageLinks';
@@ -0,0 +1,25 @@
1
+ import { type InjectionKey, type MaybeRefOrGetter, type Ref } from 'vue';
2
+ import type { MessageReactions, Reply } from '@/types';
3
+ import type { FeedReactionsHandlers } from '@/components/3_compounds/Feed/composables/useFeedReactionsOverlay';
4
+ type MessageWithReactions = {
5
+ reactions?: MessageReactions;
6
+ };
7
+ export declare const MESSAGE_REACTIONS_PATCH_KEY: InjectionKey<(next: MessageReactions) => void>;
8
+ interface UseMessageReactionsInFeedOptions {
9
+ message: MaybeRefOrGetter<MessageWithReactions>;
10
+ messageId: MaybeRefOrGetter<string | number>;
11
+ reactions: MaybeRefOrGetter<MessageReactions | undefined>;
12
+ reactionsActive: MaybeRefOrGetter<boolean>;
13
+ reactionsMode: MaybeRefOrGetter<'single' | 'multi'>;
14
+ reply: MaybeRefOrGetter<Reply | undefined>;
15
+ menuEnabled: MaybeRefOrGetter<boolean>;
16
+ contentRef: Ref<HTMLElement | null>;
17
+ chipsRef?: Ref<HTMLElement | null>;
18
+ handlers: FeedReactionsHandlers;
19
+ }
20
+ export declare function useMessageReactionsInFeed(options: UseMessageReactionsInFeedOptions): {
21
+ showReactions: import("vue").ComputedRef<boolean>;
22
+ onContentPointerEnter: () => void;
23
+ onContentPointerLeave: (event: PointerEvent) => void;
24
+ };
25
+ export {};
@@ -0,0 +1,10 @@
1
+ import { type MaybeRefOrGetter } from 'vue';
2
+ import type { MessageReactions } from '@/types';
3
+ /**
4
+ * Отложенный mount MessageReactions: без items — только после pointerenter на контент.
5
+ */
6
+ export declare function useMessageReactionsMount(reactions: MaybeRefOrGetter<MessageReactions | undefined>, reactionsActive: MaybeRefOrGetter<boolean>): {
7
+ showReactions: import("vue").ComputedRef<boolean>;
8
+ engageReactionsMount: () => void;
9
+ hasReactionItems: import("vue").ComputedRef<boolean>;
10
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mobilon-dev/chotto",
3
- "version": "0.3.106",
3
+ "version": "0.3.107",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",