@realtimexsco/live-chat 1.4.16 → 1.4.18

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/index.d.mts CHANGED
@@ -743,18 +743,27 @@ interface HeaderCallActionsSlotProps {
743
743
  showVideoCall?: boolean;
744
744
  onPhoneCall?: () => void;
745
745
  onVideoCall?: () => void;
746
+ /** From effective settings — custom slots should disable + show tooltip when true. */
747
+ phoneCallDisabled?: boolean;
748
+ videoCallDisabled?: boolean;
749
+ phoneCallDisabledReason?: string | null;
750
+ videoCallDisabledReason?: string | null;
746
751
  className?: string;
747
752
  }
748
753
  interface PhoneCallButtonSlotProps {
749
754
  activeChannel: IChannel;
750
755
  conversationId: string | null;
751
756
  onPhoneCall?: () => void;
757
+ disabled?: boolean;
758
+ disabledReason?: string | null;
752
759
  className?: string;
753
760
  }
754
761
  interface VideoCallButtonSlotProps {
755
762
  activeChannel: IChannel;
756
763
  conversationId: string | null;
757
764
  onVideoCall?: () => void;
765
+ disabled?: boolean;
766
+ disabledReason?: string | null;
758
767
  className?: string;
759
768
  }
760
769
  interface HeaderSearchOverlaySlotProps {
@@ -1851,4 +1860,36 @@ declare function ChatEffectiveSettingsProvider({ children, enabled, }: {
1851
1860
  declare function useEffectiveSettings(): ChatEffectiveSettingsContextValue;
1852
1861
  declare function useEffectiveSettingsOptional(): ChatEffectiveSettingsContextValue;
1853
1862
 
1854
- export { ADMIN_PERMISSION_DENIED_MESSAGE, type ActiveChannelMessagesSlotProps, type AdminsDrawerSlotProps, type AttachmentsDrawerSlotProps, type AvatarSlotProps, CALLS_NOT_ALLOWED_BY_PLATFORM_MESSAGE, CALLS_NOT_CONFIGURED_MESSAGE, CHAT_API_KEYS, CHAT_GET_API_KEYS, Calendar, CalendarDayButton, Channel, type ChannelDetailsDrawerSlotProps, ChannelHeaderView as ChannelHeader, type ChannelHeaderSlotProps, ChannelListView as ChannelList, ChannelListItem, type ChannelListItemSlotProps, type ChannelListSlotProps, type ChannelMessageBoxSlotProps, Chat, type ChatActionModalSlotProps, ChatAlertsProvider, type ChatApiKey, type ChatApiVersionConfig, type ChatApiVersionKey, ChatAvatar, type ChatCallContext, type ChatClassNames, type ChatColorMode, type ChatComponents, type ChatCustomizationConfig, ChatCustomizationProvider, ChatDateJumpMenu, type ChatDateTimePreferences, ChatEffectiveSettingsProvider, type ChatFeatures, type ChatGetApiKey, ChatLayout, type ChatLayoutConfig, type ChatLayoutSlotProps, ChatLocaleProvider, ChatMain, type ChatPanelAlertsSlotProps, type ChatQueryParams, type ChatQueryParamsByApi, ChatThemeProvider, ChatViewport, type ChatViewportHeight, DEFAULT_EFFECTIVE_SETTINGS, DefaultChannelListItem, DefaultChatAvatar, DefaultChatLayout, type EffectiveAttachmentsSettings, type EffectiveCallsSettings, type EffectiveGroupPolicy, type EffectiveMessageTimers, type EffectiveSettings, ForegroundPushBridge, type ForegroundPushBridgeProps, type ForegroundPushPayload, ForwardModalView as ForwardModal, type ForwardModalSlotProps, HeaderCallActions, type HeaderCallActionsSlotProps, type HeaderLeftSideSlotProps, type HeaderRightSideSlotProps, type HeaderSearchOverlaySlotProps, type IAttachment, type IChannel, type IDMDelete, type IDMEditMessage, type IDMForward, type IDMMessage, type IDMPin, type IDMReaction, type IDMRead, type IDMStar, type IDMTyping, type IDMUnstar, type IMessage, type ISocketConfig, type JumpToPreset, LoggedUserDetails, type LoggedUserDetailsSlotProps, LoggedUserSettingsContent, type LoggedUserSettingsContentSlotProps, LoggedUserSettingsDialog, type LoggedUserSettingsDialogSlotProps, LoggedUserSettingsTrigger, type LoggedUserSettingsTriggerSlotProps, type MembersDrawerSlotProps, type MessageAttachmentsSlotProps, ChannelMessageBoxView as MessageInput, MessageItemView as MessageItem, type MessageItemSlotProps, ActiveChannelMessagesView as MessageList, type MessageReactionsSlotProps, type MessageReplySnippetSlotProps, type MessageStatusSlotProps, type MessageToolbarSlotProps, NOTIFICATION_CLICK_SW_TYPE, type NotificationClickBridgeOptions, OPEN_CONVERSATION_EVENT, PUSH_BROADCAST_CHANNEL, PUSH_CHANGED_EVENT, PUSH_DATA_CACHE_NAME, type PendingJump, type PermissionDrawerSlotProps, type PhoneCallButtonSlotProps, type PinnedMessagesDrawerSlotProps, type PushConfig, PushNotificationToggle, type PushNotificationToggleProps, type PushNotificationToggleRenderProps, type PushNotificationsState, type PushOpenRequest, type PushPreference, type StarredMessagesDrawerSlotProps, type UIConfig, type UsePushNotifications, type VideoCallButtonSlotProps, apiGetPushConfig, apiGetPushPreference, apiRegisterPushToken, apiRemovePushToken, apiUpdatePushPreference, buildChannelFromPushRequest, buildLoggedUserProfile, buildVersionedApiUrl, capitalizeFirst, clampJumpDate, consumePendingOpenConversation, consumePendingOpenFromPushCache, consumePendingOpenRequest, ChatMain as default, defaultChatClassNames, defaultChatComponents, defaultChatFeatures, defaultChatLayoutConfig, disablePushOnThisDevice, downloadFile, enablePushOnThisDevice, fetchEffectiveSettings, getChatApiVersions, getChatBaseUrl, getChatQueryParamApis, getChatQueryParams, getChatQueryParamsByApi, getChatSocketUrl, getFirstAndLastNameOneCharacter, getResponsiveWidth, getSocketConfig, getStoredPushToken, installNotificationClickBridge, isEmpty, isPushSupported, mergeChatCustomization, mergeChatLayoutConfig, onForegroundPush, packageDefaultComponents, peekPendingOpenConversation, peekPendingOpenRequest, requestOpenConversation, resolveApiRoot, resolveApiUrl, resolveChatApiKey, resolveConversationIdFromPushData, resolveJumpDateBounds, resolveJumpPreset, resolveJumpStep, resolveSocketUrl, setChatAccessToken, setChatApiVersions, setChatBaseURL, setChatClientId, setChatPushApiVersion, setChatQueryParamApis, setChatQueryParams, setChatQueryParamsByApi, setChatSocketUrl, showNotification, smoothScrollToMessage, socketService, startOfLocalDay, toDateInputValue, uniqueList, useChatAlerts, useChatContext, useChatController, useChatCustomization, useChatCustomizationOptional, useChatFeatures, useChatFeaturesOptional, useChatLocale, useStore as useChatStore, useChatTheme, useEffectiveSettings, useEffectiveSettingsOptional, usePushNotifications };
1863
+ interface AdminPermissionTooltipProps {
1864
+ disabled: boolean;
1865
+ message?: string | null;
1866
+ side?: "top" | "bottom" | "left" | "right";
1867
+ className?: string;
1868
+ children: React__default.ReactNode;
1869
+ }
1870
+ /**
1871
+ * Wraps a control that may be disabled by admin effective-settings.
1872
+ * Tooltip only appears when `disabled` and a message is provided.
1873
+ * Child controls get pointer-events-none so hover hits this wrapper
1874
+ * (native disabled buttons otherwise swallow hover).
1875
+ */
1876
+ declare function AdminPermissionTooltip({ disabled, message, side, className, children, }: AdminPermissionTooltipProps): React__default.JSX.Element;
1877
+
1878
+ type AdminFeatureKey = "audioCall" | "videoCall" | "pushNotification" | "blockUsers" | "attachments" | "groupCreation";
1879
+ /**
1880
+ * Resolve an admin effective-settings gate for a feature.
1881
+ * Use inside custom slot components so disabled UI + tooltip match package defaults.
1882
+ *
1883
+ * @example
1884
+ * const gate = useAdminFeatureGate("videoCall");
1885
+ * return (
1886
+ * <AdminPermissionTooltip disabled={!gate.enabled} message={gate.disabledReason}>
1887
+ * <button disabled={!gate.enabled} onClick={gate.enabled ? onVideoCall : undefined}>
1888
+ * Video
1889
+ * </button>
1890
+ * </AdminPermissionTooltip>
1891
+ * );
1892
+ */
1893
+ declare function useAdminFeatureGate(feature: AdminFeatureKey): CallFeatureGate;
1894
+
1895
+ export { ADMIN_PERMISSION_DENIED_MESSAGE, type ActiveChannelMessagesSlotProps, type AdminFeatureKey, AdminPermissionTooltip, type AdminsDrawerSlotProps, type AttachmentsDrawerSlotProps, type AvatarSlotProps, CALLS_NOT_ALLOWED_BY_PLATFORM_MESSAGE, CALLS_NOT_CONFIGURED_MESSAGE, CHAT_API_KEYS, CHAT_GET_API_KEYS, Calendar, CalendarDayButton, type CallFeatureGate, Channel, type ChannelDetailsDrawerSlotProps, ChannelHeaderView as ChannelHeader, type ChannelHeaderSlotProps, ChannelListView as ChannelList, ChannelListItem, type ChannelListItemSlotProps, type ChannelListSlotProps, type ChannelMessageBoxSlotProps, Chat, type ChatActionModalSlotProps, ChatAlertsProvider, type ChatApiKey, type ChatApiVersionConfig, type ChatApiVersionKey, ChatAvatar, type ChatCallContext, type ChatClassNames, type ChatColorMode, type ChatComponents, type ChatCustomizationConfig, ChatCustomizationProvider, ChatDateJumpMenu, type ChatDateTimePreferences, ChatEffectiveSettingsProvider, type ChatFeatures, type ChatGetApiKey, ChatLayout, type ChatLayoutConfig, type ChatLayoutSlotProps, ChatLocaleProvider, ChatMain, type ChatPanelAlertsSlotProps, type ChatQueryParams, type ChatQueryParamsByApi, ChatThemeProvider, ChatViewport, type ChatViewportHeight, DEFAULT_EFFECTIVE_SETTINGS, DefaultChannelListItem, DefaultChatAvatar, DefaultChatLayout, type EffectiveAttachmentsSettings, type EffectiveCallsSettings, type EffectiveGroupPolicy, type EffectiveMessageTimers, type EffectiveSettings, ForegroundPushBridge, type ForegroundPushBridgeProps, type ForegroundPushPayload, ForwardModalView as ForwardModal, type ForwardModalSlotProps, HeaderCallActions, type HeaderCallActionsSlotProps, type HeaderLeftSideSlotProps, type HeaderRightSideSlotProps, type HeaderSearchOverlaySlotProps, type IAttachment, type IChannel, type IDMDelete, type IDMEditMessage, type IDMForward, type IDMMessage, type IDMPin, type IDMReaction, type IDMRead, type IDMStar, type IDMTyping, type IDMUnstar, type IMessage, type ISocketConfig, type JumpToPreset, LoggedUserDetails, type LoggedUserDetailsSlotProps, LoggedUserSettingsContent, type LoggedUserSettingsContentSlotProps, LoggedUserSettingsDialog, type LoggedUserSettingsDialogSlotProps, LoggedUserSettingsTrigger, type LoggedUserSettingsTriggerSlotProps, type MembersDrawerSlotProps, type MessageAttachmentsSlotProps, ChannelMessageBoxView as MessageInput, MessageItemView as MessageItem, type MessageItemSlotProps, ActiveChannelMessagesView as MessageList, type MessageReactionsSlotProps, type MessageReplySnippetSlotProps, type MessageStatusSlotProps, type MessageToolbarSlotProps, NOTIFICATION_CLICK_SW_TYPE, type NotificationClickBridgeOptions, OPEN_CONVERSATION_EVENT, PUSH_BROADCAST_CHANNEL, PUSH_CHANGED_EVENT, PUSH_DATA_CACHE_NAME, type PendingJump, type PermissionDrawerSlotProps, type PhoneCallButtonSlotProps, type PinnedMessagesDrawerSlotProps, type PushConfig, PushNotificationToggle, type PushNotificationToggleProps, type PushNotificationToggleRenderProps, type PushNotificationsState, type PushOpenRequest, type PushPreference, type StarredMessagesDrawerSlotProps, type UIConfig, type UsePushNotifications, type VideoCallButtonSlotProps, apiGetPushConfig, apiGetPushPreference, apiRegisterPushToken, apiRemovePushToken, apiUpdatePushPreference, buildChannelFromPushRequest, buildLoggedUserProfile, buildVersionedApiUrl, capitalizeFirst, clampJumpDate, consumePendingOpenConversation, consumePendingOpenFromPushCache, consumePendingOpenRequest, ChatMain as default, defaultChatClassNames, defaultChatComponents, defaultChatFeatures, defaultChatLayoutConfig, disablePushOnThisDevice, downloadFile, enablePushOnThisDevice, fetchEffectiveSettings, getChatApiVersions, getChatBaseUrl, getChatQueryParamApis, getChatQueryParams, getChatQueryParamsByApi, getChatSocketUrl, getFirstAndLastNameOneCharacter, getResponsiveWidth, getSocketConfig, getStoredPushToken, installNotificationClickBridge, isEmpty, isPushSupported, mergeChatCustomization, mergeChatLayoutConfig, onForegroundPush, packageDefaultComponents, peekPendingOpenConversation, peekPendingOpenRequest, requestOpenConversation, resolveApiRoot, resolveApiUrl, resolveChatApiKey, resolveConversationIdFromPushData, resolveJumpDateBounds, resolveJumpPreset, resolveJumpStep, resolveSocketUrl, setChatAccessToken, setChatApiVersions, setChatBaseURL, setChatClientId, setChatPushApiVersion, setChatQueryParamApis, setChatQueryParams, setChatQueryParamsByApi, setChatSocketUrl, showNotification, smoothScrollToMessage, socketService, startOfLocalDay, toDateInputValue, uniqueList, useAdminFeatureGate, useChatAlerts, useChatContext, useChatController, useChatCustomization, useChatCustomizationOptional, useChatFeatures, useChatFeaturesOptional, useChatLocale, useStore as useChatStore, useChatTheme, useEffectiveSettings, useEffectiveSettingsOptional, usePushNotifications };
package/dist/index.d.ts CHANGED
@@ -743,18 +743,27 @@ interface HeaderCallActionsSlotProps {
743
743
  showVideoCall?: boolean;
744
744
  onPhoneCall?: () => void;
745
745
  onVideoCall?: () => void;
746
+ /** From effective settings — custom slots should disable + show tooltip when true. */
747
+ phoneCallDisabled?: boolean;
748
+ videoCallDisabled?: boolean;
749
+ phoneCallDisabledReason?: string | null;
750
+ videoCallDisabledReason?: string | null;
746
751
  className?: string;
747
752
  }
748
753
  interface PhoneCallButtonSlotProps {
749
754
  activeChannel: IChannel;
750
755
  conversationId: string | null;
751
756
  onPhoneCall?: () => void;
757
+ disabled?: boolean;
758
+ disabledReason?: string | null;
752
759
  className?: string;
753
760
  }
754
761
  interface VideoCallButtonSlotProps {
755
762
  activeChannel: IChannel;
756
763
  conversationId: string | null;
757
764
  onVideoCall?: () => void;
765
+ disabled?: boolean;
766
+ disabledReason?: string | null;
758
767
  className?: string;
759
768
  }
760
769
  interface HeaderSearchOverlaySlotProps {
@@ -1851,4 +1860,36 @@ declare function ChatEffectiveSettingsProvider({ children, enabled, }: {
1851
1860
  declare function useEffectiveSettings(): ChatEffectiveSettingsContextValue;
1852
1861
  declare function useEffectiveSettingsOptional(): ChatEffectiveSettingsContextValue;
1853
1862
 
1854
- export { ADMIN_PERMISSION_DENIED_MESSAGE, type ActiveChannelMessagesSlotProps, type AdminsDrawerSlotProps, type AttachmentsDrawerSlotProps, type AvatarSlotProps, CALLS_NOT_ALLOWED_BY_PLATFORM_MESSAGE, CALLS_NOT_CONFIGURED_MESSAGE, CHAT_API_KEYS, CHAT_GET_API_KEYS, Calendar, CalendarDayButton, Channel, type ChannelDetailsDrawerSlotProps, ChannelHeaderView as ChannelHeader, type ChannelHeaderSlotProps, ChannelListView as ChannelList, ChannelListItem, type ChannelListItemSlotProps, type ChannelListSlotProps, type ChannelMessageBoxSlotProps, Chat, type ChatActionModalSlotProps, ChatAlertsProvider, type ChatApiKey, type ChatApiVersionConfig, type ChatApiVersionKey, ChatAvatar, type ChatCallContext, type ChatClassNames, type ChatColorMode, type ChatComponents, type ChatCustomizationConfig, ChatCustomizationProvider, ChatDateJumpMenu, type ChatDateTimePreferences, ChatEffectiveSettingsProvider, type ChatFeatures, type ChatGetApiKey, ChatLayout, type ChatLayoutConfig, type ChatLayoutSlotProps, ChatLocaleProvider, ChatMain, type ChatPanelAlertsSlotProps, type ChatQueryParams, type ChatQueryParamsByApi, ChatThemeProvider, ChatViewport, type ChatViewportHeight, DEFAULT_EFFECTIVE_SETTINGS, DefaultChannelListItem, DefaultChatAvatar, DefaultChatLayout, type EffectiveAttachmentsSettings, type EffectiveCallsSettings, type EffectiveGroupPolicy, type EffectiveMessageTimers, type EffectiveSettings, ForegroundPushBridge, type ForegroundPushBridgeProps, type ForegroundPushPayload, ForwardModalView as ForwardModal, type ForwardModalSlotProps, HeaderCallActions, type HeaderCallActionsSlotProps, type HeaderLeftSideSlotProps, type HeaderRightSideSlotProps, type HeaderSearchOverlaySlotProps, type IAttachment, type IChannel, type IDMDelete, type IDMEditMessage, type IDMForward, type IDMMessage, type IDMPin, type IDMReaction, type IDMRead, type IDMStar, type IDMTyping, type IDMUnstar, type IMessage, type ISocketConfig, type JumpToPreset, LoggedUserDetails, type LoggedUserDetailsSlotProps, LoggedUserSettingsContent, type LoggedUserSettingsContentSlotProps, LoggedUserSettingsDialog, type LoggedUserSettingsDialogSlotProps, LoggedUserSettingsTrigger, type LoggedUserSettingsTriggerSlotProps, type MembersDrawerSlotProps, type MessageAttachmentsSlotProps, ChannelMessageBoxView as MessageInput, MessageItemView as MessageItem, type MessageItemSlotProps, ActiveChannelMessagesView as MessageList, type MessageReactionsSlotProps, type MessageReplySnippetSlotProps, type MessageStatusSlotProps, type MessageToolbarSlotProps, NOTIFICATION_CLICK_SW_TYPE, type NotificationClickBridgeOptions, OPEN_CONVERSATION_EVENT, PUSH_BROADCAST_CHANNEL, PUSH_CHANGED_EVENT, PUSH_DATA_CACHE_NAME, type PendingJump, type PermissionDrawerSlotProps, type PhoneCallButtonSlotProps, type PinnedMessagesDrawerSlotProps, type PushConfig, PushNotificationToggle, type PushNotificationToggleProps, type PushNotificationToggleRenderProps, type PushNotificationsState, type PushOpenRequest, type PushPreference, type StarredMessagesDrawerSlotProps, type UIConfig, type UsePushNotifications, type VideoCallButtonSlotProps, apiGetPushConfig, apiGetPushPreference, apiRegisterPushToken, apiRemovePushToken, apiUpdatePushPreference, buildChannelFromPushRequest, buildLoggedUserProfile, buildVersionedApiUrl, capitalizeFirst, clampJumpDate, consumePendingOpenConversation, consumePendingOpenFromPushCache, consumePendingOpenRequest, ChatMain as default, defaultChatClassNames, defaultChatComponents, defaultChatFeatures, defaultChatLayoutConfig, disablePushOnThisDevice, downloadFile, enablePushOnThisDevice, fetchEffectiveSettings, getChatApiVersions, getChatBaseUrl, getChatQueryParamApis, getChatQueryParams, getChatQueryParamsByApi, getChatSocketUrl, getFirstAndLastNameOneCharacter, getResponsiveWidth, getSocketConfig, getStoredPushToken, installNotificationClickBridge, isEmpty, isPushSupported, mergeChatCustomization, mergeChatLayoutConfig, onForegroundPush, packageDefaultComponents, peekPendingOpenConversation, peekPendingOpenRequest, requestOpenConversation, resolveApiRoot, resolveApiUrl, resolveChatApiKey, resolveConversationIdFromPushData, resolveJumpDateBounds, resolveJumpPreset, resolveJumpStep, resolveSocketUrl, setChatAccessToken, setChatApiVersions, setChatBaseURL, setChatClientId, setChatPushApiVersion, setChatQueryParamApis, setChatQueryParams, setChatQueryParamsByApi, setChatSocketUrl, showNotification, smoothScrollToMessage, socketService, startOfLocalDay, toDateInputValue, uniqueList, useChatAlerts, useChatContext, useChatController, useChatCustomization, useChatCustomizationOptional, useChatFeatures, useChatFeaturesOptional, useChatLocale, useStore as useChatStore, useChatTheme, useEffectiveSettings, useEffectiveSettingsOptional, usePushNotifications };
1863
+ interface AdminPermissionTooltipProps {
1864
+ disabled: boolean;
1865
+ message?: string | null;
1866
+ side?: "top" | "bottom" | "left" | "right";
1867
+ className?: string;
1868
+ children: React__default.ReactNode;
1869
+ }
1870
+ /**
1871
+ * Wraps a control that may be disabled by admin effective-settings.
1872
+ * Tooltip only appears when `disabled` and a message is provided.
1873
+ * Child controls get pointer-events-none so hover hits this wrapper
1874
+ * (native disabled buttons otherwise swallow hover).
1875
+ */
1876
+ declare function AdminPermissionTooltip({ disabled, message, side, className, children, }: AdminPermissionTooltipProps): React__default.JSX.Element;
1877
+
1878
+ type AdminFeatureKey = "audioCall" | "videoCall" | "pushNotification" | "blockUsers" | "attachments" | "groupCreation";
1879
+ /**
1880
+ * Resolve an admin effective-settings gate for a feature.
1881
+ * Use inside custom slot components so disabled UI + tooltip match package defaults.
1882
+ *
1883
+ * @example
1884
+ * const gate = useAdminFeatureGate("videoCall");
1885
+ * return (
1886
+ * <AdminPermissionTooltip disabled={!gate.enabled} message={gate.disabledReason}>
1887
+ * <button disabled={!gate.enabled} onClick={gate.enabled ? onVideoCall : undefined}>
1888
+ * Video
1889
+ * </button>
1890
+ * </AdminPermissionTooltip>
1891
+ * );
1892
+ */
1893
+ declare function useAdminFeatureGate(feature: AdminFeatureKey): CallFeatureGate;
1894
+
1895
+ export { ADMIN_PERMISSION_DENIED_MESSAGE, type ActiveChannelMessagesSlotProps, type AdminFeatureKey, AdminPermissionTooltip, type AdminsDrawerSlotProps, type AttachmentsDrawerSlotProps, type AvatarSlotProps, CALLS_NOT_ALLOWED_BY_PLATFORM_MESSAGE, CALLS_NOT_CONFIGURED_MESSAGE, CHAT_API_KEYS, CHAT_GET_API_KEYS, Calendar, CalendarDayButton, type CallFeatureGate, Channel, type ChannelDetailsDrawerSlotProps, ChannelHeaderView as ChannelHeader, type ChannelHeaderSlotProps, ChannelListView as ChannelList, ChannelListItem, type ChannelListItemSlotProps, type ChannelListSlotProps, type ChannelMessageBoxSlotProps, Chat, type ChatActionModalSlotProps, ChatAlertsProvider, type ChatApiKey, type ChatApiVersionConfig, type ChatApiVersionKey, ChatAvatar, type ChatCallContext, type ChatClassNames, type ChatColorMode, type ChatComponents, type ChatCustomizationConfig, ChatCustomizationProvider, ChatDateJumpMenu, type ChatDateTimePreferences, ChatEffectiveSettingsProvider, type ChatFeatures, type ChatGetApiKey, ChatLayout, type ChatLayoutConfig, type ChatLayoutSlotProps, ChatLocaleProvider, ChatMain, type ChatPanelAlertsSlotProps, type ChatQueryParams, type ChatQueryParamsByApi, ChatThemeProvider, ChatViewport, type ChatViewportHeight, DEFAULT_EFFECTIVE_SETTINGS, DefaultChannelListItem, DefaultChatAvatar, DefaultChatLayout, type EffectiveAttachmentsSettings, type EffectiveCallsSettings, type EffectiveGroupPolicy, type EffectiveMessageTimers, type EffectiveSettings, ForegroundPushBridge, type ForegroundPushBridgeProps, type ForegroundPushPayload, ForwardModalView as ForwardModal, type ForwardModalSlotProps, HeaderCallActions, type HeaderCallActionsSlotProps, type HeaderLeftSideSlotProps, type HeaderRightSideSlotProps, type HeaderSearchOverlaySlotProps, type IAttachment, type IChannel, type IDMDelete, type IDMEditMessage, type IDMForward, type IDMMessage, type IDMPin, type IDMReaction, type IDMRead, type IDMStar, type IDMTyping, type IDMUnstar, type IMessage, type ISocketConfig, type JumpToPreset, LoggedUserDetails, type LoggedUserDetailsSlotProps, LoggedUserSettingsContent, type LoggedUserSettingsContentSlotProps, LoggedUserSettingsDialog, type LoggedUserSettingsDialogSlotProps, LoggedUserSettingsTrigger, type LoggedUserSettingsTriggerSlotProps, type MembersDrawerSlotProps, type MessageAttachmentsSlotProps, ChannelMessageBoxView as MessageInput, MessageItemView as MessageItem, type MessageItemSlotProps, ActiveChannelMessagesView as MessageList, type MessageReactionsSlotProps, type MessageReplySnippetSlotProps, type MessageStatusSlotProps, type MessageToolbarSlotProps, NOTIFICATION_CLICK_SW_TYPE, type NotificationClickBridgeOptions, OPEN_CONVERSATION_EVENT, PUSH_BROADCAST_CHANNEL, PUSH_CHANGED_EVENT, PUSH_DATA_CACHE_NAME, type PendingJump, type PermissionDrawerSlotProps, type PhoneCallButtonSlotProps, type PinnedMessagesDrawerSlotProps, type PushConfig, PushNotificationToggle, type PushNotificationToggleProps, type PushNotificationToggleRenderProps, type PushNotificationsState, type PushOpenRequest, type PushPreference, type StarredMessagesDrawerSlotProps, type UIConfig, type UsePushNotifications, type VideoCallButtonSlotProps, apiGetPushConfig, apiGetPushPreference, apiRegisterPushToken, apiRemovePushToken, apiUpdatePushPreference, buildChannelFromPushRequest, buildLoggedUserProfile, buildVersionedApiUrl, capitalizeFirst, clampJumpDate, consumePendingOpenConversation, consumePendingOpenFromPushCache, consumePendingOpenRequest, ChatMain as default, defaultChatClassNames, defaultChatComponents, defaultChatFeatures, defaultChatLayoutConfig, disablePushOnThisDevice, downloadFile, enablePushOnThisDevice, fetchEffectiveSettings, getChatApiVersions, getChatBaseUrl, getChatQueryParamApis, getChatQueryParams, getChatQueryParamsByApi, getChatSocketUrl, getFirstAndLastNameOneCharacter, getResponsiveWidth, getSocketConfig, getStoredPushToken, installNotificationClickBridge, isEmpty, isPushSupported, mergeChatCustomization, mergeChatLayoutConfig, onForegroundPush, packageDefaultComponents, peekPendingOpenConversation, peekPendingOpenRequest, requestOpenConversation, resolveApiRoot, resolveApiUrl, resolveChatApiKey, resolveConversationIdFromPushData, resolveJumpDateBounds, resolveJumpPreset, resolveJumpStep, resolveSocketUrl, setChatAccessToken, setChatApiVersions, setChatBaseURL, setChatClientId, setChatPushApiVersion, setChatQueryParamApis, setChatQueryParams, setChatQueryParamsByApi, setChatSocketUrl, showNotification, smoothScrollToMessage, socketService, startOfLocalDay, toDateInputValue, uniqueList, useAdminFeatureGate, useChatAlerts, useChatContext, useChatController, useChatCustomization, useChatCustomizationOptional, useChatFeatures, useChatFeaturesOptional, useChatLocale, useStore as useChatStore, useChatTheme, useEffectiveSettings, useEffectiveSettingsOptional, usePushNotifications };
package/dist/index.mjs CHANGED
@@ -9011,23 +9011,24 @@ var DefaultHeaderCallActions = ({
9011
9011
  showVideoCall = true,
9012
9012
  onPhoneCall,
9013
9013
  onVideoCall,
9014
+ phoneCallDisabled = false,
9015
+ videoCallDisabled = false,
9016
+ phoneCallDisabledReason = null,
9017
+ videoCallDisabledReason = null,
9014
9018
  className
9015
9019
  }) => {
9016
9020
  const { components, slotClassName } = useChatCustomizationOptional();
9017
- const { getAudioCallGate, getVideoCallGate } = useEffectiveSettingsOptional();
9018
9021
  const PhoneSlot = components.PhoneCallButton;
9019
9022
  const VideoSlot = components.VideoCallButton;
9020
- const audioGate = getAudioCallGate();
9021
- const videoGate = getVideoCallGate();
9022
9023
  if (!showPhoneCall && !showVideoCall) return null;
9023
- const phoneEnabled = showPhoneCall && audioGate.enabled;
9024
- const videoEnabled = showVideoCall && videoGate.enabled;
9024
+ const phoneEnabled = showPhoneCall && !phoneCallDisabled;
9025
+ const videoEnabled = showVideoCall && !videoCallDisabled;
9025
9026
  return /* @__PURE__ */ jsxs(Fragment, { children: [
9026
9027
  showPhoneCall && (PhoneSlot ? /* @__PURE__ */ jsx(
9027
9028
  AdminPermissionTooltip,
9028
9029
  {
9029
- disabled: !audioGate.enabled,
9030
- message: audioGate.disabledReason,
9030
+ disabled: phoneCallDisabled,
9031
+ message: phoneCallDisabledReason,
9031
9032
  side: "bottom",
9032
9033
  children: /* @__PURE__ */ jsx("span", { className: "inline-flex", children: /* @__PURE__ */ jsx(
9033
9034
  PhoneSlot,
@@ -9035,10 +9036,12 @@ var DefaultHeaderCallActions = ({
9035
9036
  activeChannel,
9036
9037
  conversationId,
9037
9038
  onPhoneCall: phoneEnabled ? onPhoneCall : void 0,
9039
+ disabled: phoneCallDisabled,
9040
+ disabledReason: phoneCallDisabledReason,
9038
9041
  className: cn(
9039
9042
  className,
9040
9043
  slotClassName("phoneCallButton"),
9041
- !audioGate.enabled && "opacity-40"
9044
+ phoneCallDisabled && "opacity-40"
9042
9045
  )
9043
9046
  }
9044
9047
  ) })
@@ -9046,8 +9049,8 @@ var DefaultHeaderCallActions = ({
9046
9049
  ) : /* @__PURE__ */ jsx(
9047
9050
  AdminPermissionTooltip,
9048
9051
  {
9049
- disabled: !audioGate.enabled,
9050
- message: audioGate.disabledReason,
9052
+ disabled: phoneCallDisabled,
9053
+ message: phoneCallDisabledReason,
9051
9054
  side: "bottom",
9052
9055
  children: /* @__PURE__ */ jsx(
9053
9056
  Button,
@@ -9056,7 +9059,7 @@ var DefaultHeaderCallActions = ({
9056
9059
  size: "icon",
9057
9060
  className: cn(actionBtnClass, className, slotClassName("phoneCallButton")),
9058
9061
  "aria-label": "Voice call",
9059
- disabled: !audioGate.enabled,
9062
+ disabled: phoneCallDisabled,
9060
9063
  onClick: phoneEnabled ? onPhoneCall : void 0,
9061
9064
  children: /* @__PURE__ */ jsx(Phone, { size: 15 })
9062
9065
  }
@@ -9066,8 +9069,8 @@ var DefaultHeaderCallActions = ({
9066
9069
  showVideoCall && (VideoSlot ? /* @__PURE__ */ jsx(
9067
9070
  AdminPermissionTooltip,
9068
9071
  {
9069
- disabled: !videoGate.enabled,
9070
- message: videoGate.disabledReason,
9072
+ disabled: videoCallDisabled,
9073
+ message: videoCallDisabledReason,
9071
9074
  side: "bottom",
9072
9075
  children: /* @__PURE__ */ jsx("span", { className: "inline-flex", children: /* @__PURE__ */ jsx(
9073
9076
  VideoSlot,
@@ -9075,10 +9078,12 @@ var DefaultHeaderCallActions = ({
9075
9078
  activeChannel,
9076
9079
  conversationId,
9077
9080
  onVideoCall: videoEnabled ? onVideoCall : void 0,
9081
+ disabled: videoCallDisabled,
9082
+ disabledReason: videoCallDisabledReason,
9078
9083
  className: cn(
9079
9084
  className,
9080
9085
  slotClassName("videoCallButton"),
9081
- !videoGate.enabled && "opacity-40"
9086
+ videoCallDisabled && "opacity-40"
9082
9087
  )
9083
9088
  }
9084
9089
  ) })
@@ -9086,8 +9091,8 @@ var DefaultHeaderCallActions = ({
9086
9091
  ) : /* @__PURE__ */ jsx(
9087
9092
  AdminPermissionTooltip,
9088
9093
  {
9089
- disabled: !videoGate.enabled,
9090
- message: videoGate.disabledReason,
9094
+ disabled: videoCallDisabled,
9095
+ message: videoCallDisabledReason,
9091
9096
  side: "bottom",
9092
9097
  children: /* @__PURE__ */ jsx(
9093
9098
  Button,
@@ -9096,7 +9101,7 @@ var DefaultHeaderCallActions = ({
9096
9101
  size: "icon",
9097
9102
  className: cn(actionBtnClass, className, slotClassName("videoCallButton")),
9098
9103
  "aria-label": "Video call",
9099
- disabled: !videoGate.enabled,
9104
+ disabled: videoCallDisabled,
9100
9105
  onClick: videoEnabled ? onVideoCall : void 0,
9101
9106
  children: /* @__PURE__ */ jsx(Video, { size: 15 })
9102
9107
  }
@@ -9107,12 +9112,27 @@ var DefaultHeaderCallActions = ({
9107
9112
  };
9108
9113
  var HeaderCallActions = (props) => {
9109
9114
  const { components, slotClassName } = useChatCustomizationOptional();
9115
+ const { getAudioCallGate, getVideoCallGate } = useEffectiveSettingsOptional();
9110
9116
  const Custom = components.HeaderCallActions;
9111
9117
  const showPhoneCall = props.showPhoneCall ?? true;
9112
9118
  const showVideoCall = props.showVideoCall ?? true;
9119
+ const audioGate = getAudioCallGate();
9120
+ const videoGate = getVideoCallGate();
9113
9121
  if (!showPhoneCall && !showVideoCall) return null;
9114
- const useCustom = Custom != null && Custom !== HeaderCallActions;
9115
- return /* @__PURE__ */ jsx("div", { className: cn("flex items-center gap-0.5", slotClassName("headerCallActions")), children: useCustom ? /* @__PURE__ */ jsx(Custom, { ...props }) : /* @__PURE__ */ jsx(DefaultHeaderCallActions, { ...props }) });
9122
+ const gatedProps = {
9123
+ ...props,
9124
+ showPhoneCall,
9125
+ showVideoCall,
9126
+ onPhoneCall: audioGate.enabled ? props.onPhoneCall : void 0,
9127
+ onVideoCall: videoGate.enabled ? props.onVideoCall : void 0,
9128
+ phoneCallDisabled: !audioGate.enabled,
9129
+ videoCallDisabled: !videoGate.enabled,
9130
+ phoneCallDisabledReason: audioGate.disabledReason,
9131
+ videoCallDisabledReason: videoGate.disabledReason
9132
+ };
9133
+ const hasButtonSlots = components.PhoneCallButton != null || components.VideoCallButton != null;
9134
+ const useCustom = Custom != null && Custom !== HeaderCallActions && !hasButtonSlots;
9135
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center gap-0.5", slotClassName("headerCallActions")), children: useCustom ? /* @__PURE__ */ jsx(Custom, { ...gatedProps }) : /* @__PURE__ */ jsx(DefaultHeaderCallActions, { ...gatedProps }) });
9116
9136
  };
9117
9137
  var HeaderCallActions_default = HeaderCallActions;
9118
9138
  function OptionsMenuItem({
@@ -9775,10 +9795,10 @@ function AudioAttachmentPlayer({
9775
9795
  "div",
9776
9796
  {
9777
9797
  className: cn(
9778
- "chat-audio-player w-full min-w-[220px] max-w-[280px] rounded-xl border p-2.5",
9798
+ "chat-audio-player w-full min-w-[220px] max-w-[280px] rounded-xl border p-2.5 transition-shadow duration-150",
9779
9799
  onThemeBubble && "chat-audio-player-on-dark border-white/20 bg-white/12 text-white shadow-[inset_0_1px_0_rgba(255,255,255,0.08)] backdrop-blur-[2px]",
9780
- onIncomingBubble && "border-(--chat-border)/70 bg-(--chat-elevated) text-(--chat-text) shadow-sm [.dark_&]:bg-(--chat-surface)",
9781
- !inBubble && "border-(--chat-border) bg-(--chat-elevated) text-(--chat-text) shadow-sm",
9800
+ onIncomingBubble && "border-(--chat-border)/70 bg-(--chat-elevated) text-(--chat-text) shadow-sm hover:shadow-md [.dark_&]:bg-(--chat-surface)",
9801
+ !inBubble && "border-(--chat-border) bg-(--chat-elevated) text-(--chat-text) shadow-sm hover:shadow-md",
9782
9802
  className
9783
9803
  ),
9784
9804
  children: [
@@ -9814,7 +9834,7 @@ function AudioAttachmentPlayer({
9814
9834
  onClick: () => void togglePlay(),
9815
9835
  disabled: !url,
9816
9836
  className: cn(
9817
- "flex size-8 shrink-0 items-center justify-center rounded-full border transition-colors",
9837
+ "flex size-8 shrink-0 items-center justify-center rounded-full border transition-all duration-150 hover:scale-105",
9818
9838
  onThemeBubble ? "border-white/30 bg-white/10 text-white hover:bg-white/15" : "border-(--chat-border) bg-(--chat-input-bg) text-(--chat-text) hover:bg-(--chat-hover)",
9819
9839
  !url && "opacity-40"
9820
9840
  ),
@@ -9868,10 +9888,10 @@ function getMediaCardClasses(inBubble, isSender) {
9868
9888
  const onThemeBubble = inBubble && isSender;
9869
9889
  const onIncomingBubble = inBubble && !isSender;
9870
9890
  return cn(
9871
- "w-full min-w-[220px] max-w-[280px] rounded-xl border p-2.5",
9891
+ "w-full min-w-[220px] max-w-[280px] rounded-xl border p-2.5 transition-shadow duration-150",
9872
9892
  onThemeBubble && "border-white/20 bg-white/12 text-white shadow-[inset_0_1px_0_rgba(255,255,255,0.08)] backdrop-blur-[2px]",
9873
- onIncomingBubble && "border-(--chat-border)/70 bg-(--chat-elevated) text-(--chat-text) shadow-sm [.dark_&]:bg-(--chat-surface)",
9874
- !inBubble && "border-(--chat-border) bg-(--chat-elevated) text-(--chat-text) shadow-sm"
9893
+ onIncomingBubble && "border-(--chat-border)/70 bg-(--chat-elevated) text-(--chat-text) shadow-sm hover:shadow-md [.dark_&]:bg-(--chat-surface)",
9894
+ !inBubble && "border-(--chat-border) bg-(--chat-elevated) text-(--chat-text) shadow-sm hover:shadow-md"
9875
9895
  );
9876
9896
  }
9877
9897
  function VideoAttachmentPlayer({
@@ -9995,10 +10015,10 @@ function VideoAttachmentPlayer({
9995
10015
  {
9996
10016
  type: "button",
9997
10017
  onClick: () => void togglePlay(),
9998
- className: "absolute inset-0 flex items-center justify-center bg-black/20 transition-colors hover:bg-black/30",
10018
+ className: "group/play absolute inset-0 flex items-center justify-center bg-black/20 transition-colors hover:bg-black/30",
9999
10019
  "aria-label": `Play ${name}`,
10000
10020
  children: /* @__PURE__ */ jsx("span", { className: cn(
10001
- "flex items-center justify-center rounded-full shadow-md",
10021
+ "flex items-center justify-center rounded-full shadow-md transition-transform duration-150 group-hover/play:scale-110",
10002
10022
  compact ? "size-9" : "size-11",
10003
10023
  onThemeBubble ? "bg-white/95 text-(--chat-theme)" : "bg-(--chat-surface)/95 text-(--chat-text)"
10004
10024
  ), children: /* @__PURE__ */ jsx(Play, { size: compact ? 15 : 18, className: "ml-0.5 fill-current" }) })
@@ -10041,13 +10061,13 @@ function getAttachmentIcon(fileName, type, className, size = 20) {
10041
10061
  }
10042
10062
  function getAttachmentIconBoxClass(fileName, type) {
10043
10063
  const ext = fileName.split(".").pop()?.toLowerCase() || "";
10044
- if (["mp3", "wav", "ogg", "m4a"].includes(ext)) return "bg-violet-500";
10045
- if (["mp4", "mov", "webm"].includes(ext)) return "bg-pink-500";
10046
- if (ext === "pdf") return "bg-red-500";
10047
- if (["doc", "docx"].includes(ext)) return "bg-blue-500";
10048
- if (["xls", "xlsx", "csv"].includes(ext)) return "bg-emerald-600";
10049
- if (["ppt", "pptx"].includes(ext)) return "bg-orange-500";
10050
- return "bg-slate-500";
10064
+ if (["mp3", "wav", "ogg", "m4a"].includes(ext)) return "bg-linear-to-br from-violet-500 to-fuchsia-500";
10065
+ if (["mp4", "mov", "webm"].includes(ext)) return "bg-linear-to-br from-pink-500 to-rose-500";
10066
+ if (ext === "pdf") return "bg-linear-to-br from-red-500 to-rose-600";
10067
+ if (["doc", "docx"].includes(ext)) return "bg-linear-to-br from-blue-500 to-indigo-500";
10068
+ if (["xls", "xlsx", "csv"].includes(ext)) return "bg-linear-to-br from-emerald-500 to-teal-600";
10069
+ if (["ppt", "pptx"].includes(ext)) return "bg-linear-to-br from-orange-500 to-amber-500";
10070
+ return "bg-linear-to-br from-slate-500 to-slate-600";
10051
10071
  }
10052
10072
  var MessageStatus = ({ status, isPending, className }) => {
10053
10073
  const resolvedStatus = status || "sent";
@@ -11197,28 +11217,28 @@ function ImageTile({ att, className, fill, embeddedInBubble, showImageCaption, o
11197
11217
  {
11198
11218
  type: "button",
11199
11219
  className: cn(
11200
- "relative block w-full overflow-hidden bg-(--chat-elevated)",
11220
+ "group relative block w-full overflow-hidden bg-(--chat-elevated)",
11201
11221
  fill ? "h-full min-h-0" : "",
11202
11222
  className
11203
11223
  ),
11204
11224
  onClick: onOpen,
11205
11225
  "aria-label": `Open ${att.name || "image"}`,
11206
11226
  children: [
11207
- mediaUrl ? (
11208
- // eslint-disable-next-line @next/next/no-img-element -- remote chat attachment URLs are dynamic/user-supplied
11227
+ mediaUrl ? /* @__PURE__ */ jsxs(Fragment, { children: [
11209
11228
  /* @__PURE__ */ jsx(
11210
11229
  "img",
11211
11230
  {
11212
11231
  src: mediaUrl,
11213
11232
  alt: att.name || "Image",
11214
11233
  className: cn(
11215
- "block",
11234
+ "block transition-transform duration-300 ease-out group-hover:scale-[1.04]",
11216
11235
  fill || embeddedInBubble ? "size-full object-cover" : "max-h-[300px] w-full rounded-xl object-contain"
11217
11236
  ),
11218
11237
  loading: "lazy"
11219
11238
  }
11220
- )
11221
- ) : /* @__PURE__ */ jsx("div", { className: "flex size-full min-h-[80px] items-center justify-center text-xs text-(--chat-muted)", children: "Image unavailable" }),
11239
+ ),
11240
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute inset-0 bg-black/0 transition-colors duration-200 group-hover:bg-black/10", "aria-hidden": true })
11241
+ ] }) : /* @__PURE__ */ jsx("div", { className: "flex size-full min-h-[80px] items-center justify-center text-xs text-(--chat-muted)", children: "Image unavailable" }),
11222
11242
  showImageCaption && imageCaption ? /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-x-0 bottom-0 z-10 bg-linear-to-t from-black/75 via-black/35 to-transparent px-1.5 pb-1 pt-5 text-left", children: /* @__PURE__ */ jsx("p", { className: "line-clamp-3 text-[10px] leading-snug text-white", children: imageCaption }) }) : null
11223
11243
  ]
11224
11244
  }
@@ -11653,14 +11673,14 @@ function FileAttachmentRow({
11653
11673
  "div",
11654
11674
  {
11655
11675
  className: cn(
11656
- "group w-full transition-opacity",
11676
+ "group w-full transition-all duration-150",
11657
11677
  !stacked && "flex min-w-[220px] items-center gap-2",
11658
11678
  stacked && "py-1.5",
11659
11679
  stacked && showDivider && (onThemeBubble ? "border-t border-white/15" : "border-t border-(--chat-border)/35"),
11660
11680
  !stacked && "rounded-xl border p-2.5",
11661
- !stacked && onThemeBubble && "border-white/20 bg-white/12 text-white shadow-[inset_0_1px_0_rgba(255,255,255,0.08)] backdrop-blur-[2px]",
11662
- !stacked && onIncomingBubble && "border-(--chat-border)/70 bg-(--chat-elevated) text-(--chat-text) shadow-sm [.dark_&]:bg-(--chat-surface)",
11663
- !stacked && !inBubble && "border-(--chat-border) bg-(--chat-surface) shadow-sm",
11681
+ !stacked && onThemeBubble && "border-white/20 bg-white/12 text-white shadow-[inset_0_1px_0_rgba(255,255,255,0.08)] backdrop-blur-[2px] hover:bg-white/16",
11682
+ !stacked && onIncomingBubble && "border-(--chat-border)/70 bg-(--chat-elevated) text-(--chat-text) shadow-sm hover:border-(--chat-theme)/30 hover:shadow-md [.dark_&]:bg-(--chat-surface)",
11683
+ !stacked && !inBubble && "border-(--chat-border) bg-(--chat-surface) shadow-sm hover:border-(--chat-theme)/30 hover:shadow-md",
11664
11684
  !fileUrl && "pointer-events-none opacity-60",
11665
11685
  isCaptionActive && "opacity-90"
11666
11686
  ),
@@ -11675,7 +11695,7 @@ function FileAttachmentRow({
11675
11695
  className: "flex min-w-0 flex-1 items-center gap-2.5 text-left disabled:cursor-default",
11676
11696
  children: [
11677
11697
  /* @__PURE__ */ jsx("div", { className: cn(
11678
- "flex size-10 shrink-0 items-center justify-center rounded-lg text-white shadow-sm",
11698
+ "flex size-10 shrink-0 items-center justify-center rounded-lg text-white shadow-sm transition-transform duration-150 group-hover:scale-105",
11679
11699
  getAttachmentIconBoxClass(rawName)
11680
11700
  ), children: getAttachmentIcon(rawName, "file", "text-white", 18) }),
11681
11701
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -19708,11 +19728,34 @@ var packageDefaultComponents = {
19708
19728
  ChatSocketStatus: ChatSocketStatus_default
19709
19729
  };
19710
19730
 
19731
+ // src/hooks/useAdminFeatureGate.ts
19732
+ function useAdminFeatureGate(feature) {
19733
+ const ctx = useEffectiveSettingsOptional();
19734
+ switch (feature) {
19735
+ case "audioCall":
19736
+ return ctx.getAudioCallGate();
19737
+ case "videoCall":
19738
+ return ctx.getVideoCallGate();
19739
+ case "pushNotification":
19740
+ return ctx.getPushNotificationGate();
19741
+ case "blockUsers":
19742
+ return ctx.getBlockUsersGate();
19743
+ case "attachments":
19744
+ return ctx.getAttachmentsGate();
19745
+ case "groupCreation":
19746
+ return ctx.getGroupCreationGate();
19747
+ default: {
19748
+ const _exhaustive = feature;
19749
+ return _exhaustive;
19750
+ }
19751
+ }
19752
+ }
19753
+
19711
19754
  // src/index.ts
19712
19755
  init_settings_types();
19713
19756
  init_api_service();
19714
19757
  var index_default = ChatMain_default;
19715
19758
 
19716
- export { ADMIN_PERMISSION_DENIED_MESSAGE, CALLS_NOT_ALLOWED_BY_PLATFORM_MESSAGE, CALLS_NOT_CONFIGURED_MESSAGE, CHAT_API_KEYS, CHAT_GET_API_KEYS, Calendar, CalendarDayButton, Channel, ChannelHeaderView_default as ChannelHeader, ChannelListView_default as ChannelList, ChannelListItem_default as ChannelListItem, Chat, ChatAlertsProvider, ChatAvatar_default as ChatAvatar, ChatCustomizationProvider, ChatDateJumpMenu, ChatEffectiveSettingsProvider, ChatLayout_default as ChatLayout, ChatLocaleProvider, ChatMain_default as ChatMain, ChatThemeProvider, ChatViewport, DEFAULT_EFFECTIVE_SETTINGS, DefaultChannelListItem, DefaultChatAvatar, DefaultChatLayout_default as DefaultChatLayout, ForegroundPushBridge, ForwardModalView as ForwardModal, HeaderCallActions_default as HeaderCallActions, LoggedUserDetails_default as LoggedUserDetails, LoggedUserSettingsContent_default as LoggedUserSettingsContent, LoggedUserSettingsDialog_default as LoggedUserSettingsDialog, LoggedUserSettingsTrigger_default as LoggedUserSettingsTrigger, ChannelMessageBoxView_default as MessageInput, MessageItemView as MessageItem, ActiveChannelMessagesView_default as MessageList, NOTIFICATION_CLICK_SW_TYPE, OPEN_CONVERSATION_EVENT, PUSH_BROADCAST_CHANNEL, PUSH_CHANGED_EVENT, PUSH_DATA_CACHE_NAME, PushNotificationToggle, apiGetPushConfig, apiGetPushPreference, apiRegisterPushToken, apiRemovePushToken, apiUpdatePushPreference, buildChannelFromPushRequest, buildLoggedUserProfile, buildVersionedApiUrl, capitalizeFirst, clampJumpDate, consumePendingOpenConversation, consumePendingOpenFromPushCache, consumePendingOpenRequest, index_default as default, defaultChatClassNames, defaultChatComponents, defaultChatFeatures, defaultChatLayoutConfig, disablePushOnThisDevice, downloadFile, enablePushOnThisDevice, fetchEffectiveSettings, getChatApiVersions, getChatBaseUrl, getChatQueryParamApis, getChatQueryParams, getChatQueryParamsByApi, getChatSocketUrl, getFirstAndLastNameOneCharacter, getResponsiveWidth, getSocketConfig, getStoredPushToken, installNotificationClickBridge, isEmpty, isPushSupported, mergeChatCustomization, mergeChatLayoutConfig, onForegroundPush, packageDefaultComponents, peekPendingOpenConversation, peekPendingOpenRequest, requestOpenConversation, resolveApiRoot, resolveApiUrl, resolveChatApiKey, resolveConversationIdFromPushData, resolveJumpDateBounds, resolveJumpPreset, resolveJumpStep, resolveSocketUrl, setChatAccessToken, setChatApiVersions, setChatBaseURL, setChatClientId, setChatPushApiVersion, setChatQueryParamApis, setChatQueryParams, setChatQueryParamsByApi, setChatSocketUrl, showNotification, smoothScrollToMessage, socket_service_default as socketService, startOfLocalDay, toDateInputValue, uniqueList, useChatAlerts, useChatContext, useChatController, useChatCustomization, useChatCustomizationOptional, useChatFeatures, useChatFeaturesOptional, useChatLocale, useStore as useChatStore, useChatTheme, useEffectiveSettings, useEffectiveSettingsOptional, usePushNotifications };
19759
+ export { ADMIN_PERMISSION_DENIED_MESSAGE, AdminPermissionTooltip, CALLS_NOT_ALLOWED_BY_PLATFORM_MESSAGE, CALLS_NOT_CONFIGURED_MESSAGE, CHAT_API_KEYS, CHAT_GET_API_KEYS, Calendar, CalendarDayButton, Channel, ChannelHeaderView_default as ChannelHeader, ChannelListView_default as ChannelList, ChannelListItem_default as ChannelListItem, Chat, ChatAlertsProvider, ChatAvatar_default as ChatAvatar, ChatCustomizationProvider, ChatDateJumpMenu, ChatEffectiveSettingsProvider, ChatLayout_default as ChatLayout, ChatLocaleProvider, ChatMain_default as ChatMain, ChatThemeProvider, ChatViewport, DEFAULT_EFFECTIVE_SETTINGS, DefaultChannelListItem, DefaultChatAvatar, DefaultChatLayout_default as DefaultChatLayout, ForegroundPushBridge, ForwardModalView as ForwardModal, HeaderCallActions_default as HeaderCallActions, LoggedUserDetails_default as LoggedUserDetails, LoggedUserSettingsContent_default as LoggedUserSettingsContent, LoggedUserSettingsDialog_default as LoggedUserSettingsDialog, LoggedUserSettingsTrigger_default as LoggedUserSettingsTrigger, ChannelMessageBoxView_default as MessageInput, MessageItemView as MessageItem, ActiveChannelMessagesView_default as MessageList, NOTIFICATION_CLICK_SW_TYPE, OPEN_CONVERSATION_EVENT, PUSH_BROADCAST_CHANNEL, PUSH_CHANGED_EVENT, PUSH_DATA_CACHE_NAME, PushNotificationToggle, apiGetPushConfig, apiGetPushPreference, apiRegisterPushToken, apiRemovePushToken, apiUpdatePushPreference, buildChannelFromPushRequest, buildLoggedUserProfile, buildVersionedApiUrl, capitalizeFirst, clampJumpDate, consumePendingOpenConversation, consumePendingOpenFromPushCache, consumePendingOpenRequest, index_default as default, defaultChatClassNames, defaultChatComponents, defaultChatFeatures, defaultChatLayoutConfig, disablePushOnThisDevice, downloadFile, enablePushOnThisDevice, fetchEffectiveSettings, getChatApiVersions, getChatBaseUrl, getChatQueryParamApis, getChatQueryParams, getChatQueryParamsByApi, getChatSocketUrl, getFirstAndLastNameOneCharacter, getResponsiveWidth, getSocketConfig, getStoredPushToken, installNotificationClickBridge, isEmpty, isPushSupported, mergeChatCustomization, mergeChatLayoutConfig, onForegroundPush, packageDefaultComponents, peekPendingOpenConversation, peekPendingOpenRequest, requestOpenConversation, resolveApiRoot, resolveApiUrl, resolveChatApiKey, resolveConversationIdFromPushData, resolveJumpDateBounds, resolveJumpPreset, resolveJumpStep, resolveSocketUrl, setChatAccessToken, setChatApiVersions, setChatBaseURL, setChatClientId, setChatPushApiVersion, setChatQueryParamApis, setChatQueryParams, setChatQueryParamsByApi, setChatSocketUrl, showNotification, smoothScrollToMessage, socket_service_default as socketService, startOfLocalDay, toDateInputValue, uniqueList, useAdminFeatureGate, useChatAlerts, useChatContext, useChatController, useChatCustomization, useChatCustomizationOptional, useChatFeatures, useChatFeaturesOptional, useChatLocale, useStore as useChatStore, useChatTheme, useEffectiveSettings, useEffectiveSettingsOptional, usePushNotifications };
19717
19760
  //# sourceMappingURL=index.mjs.map
19718
19761
  //# sourceMappingURL=index.mjs.map