@connectycube/chat-widget 0.33.0 → 0.34.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.
- package/CHANGELOG.md +55 -286
- package/dist/index.es.js +3315 -2797
- package/dist/index.umd.js +148 -62
- package/dist/react19.es.js +3115 -2597
- package/dist/types/components/home/main/ai-dropdown-menu/ai-dropdown-change-tone.d.ts +14 -0
- package/dist/types/components/home/main/ai-dropdown-menu/ai-dropdown-get-summary.d.ts +11 -0
- package/dist/types/components/home/main/chat-ai-button.d.ts +8 -0
- package/dist/types/components/home/main/chat-input.d.ts +1 -0
- package/dist/types/components/home/main/chat-messages-list.d.ts +1 -0
- package/dist/types/components/home/main/message/call-message.d.ts +13 -0
- package/dist/types/components/home/main/message/message-text-summary.d.ts +8 -0
- package/dist/types/components/home/main/message/message.d.ts +1 -0
- package/dist/types/components/shadcn-ui/class-names.d.ts +4 -0
- package/dist/types/components/shadcn-ui/skeleton.d.ts +2 -0
- package/dist/types/helpers/formatters.d.ts +1 -0
- package/dist/types/helpers/i18n.d.ts +5 -0
- package/dist/types/helpers/widget.d.ts +19 -0
- package/dist/types/hooks/index.d.ts +3 -1
- package/dist/types/hooks/store/useAppAIStore.d.ts +18 -0
- package/dist/types/hooks/useAppPresets.d.ts +6 -1
- package/dist/types/hooks/useCallHistory.d.ts +15 -0
- package/dist/types/locales/el/translation.json.d.ts +25 -1
- package/dist/types/locales/en/translation.json.d.ts +25 -1
- package/dist/types/locales/ua/translation.json.d.ts +25 -1
- package/dist/types/tests/formatters.test.d.ts +1 -0
- package/package.json +39 -33
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { AIDropdownMenuSubKeys } from '../../../../helpers/widget';
|
|
3
|
+
import { LanguageModelV2 } from '@ai-sdk/provider';
|
|
4
|
+
type AIDropdownChangeToneProps = {
|
|
5
|
+
activeKey: AIDropdownMenuSubKeys;
|
|
6
|
+
setActiveKey: (active: AIDropdownMenuSubKeys) => void;
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
aiModel: LanguageModelV2;
|
|
9
|
+
message: string;
|
|
10
|
+
changeMessage: (message: string) => void;
|
|
11
|
+
setProcessing: (processing: boolean) => void;
|
|
12
|
+
};
|
|
13
|
+
declare const AIDropdownChangeTone: React.FC<AIDropdownChangeToneProps>;
|
|
14
|
+
export default AIDropdownChangeTone;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { AIDropdownMenuSubKeys } from '../../../../helpers/widget';
|
|
3
|
+
import { LanguageModelV2 } from '@ai-sdk/provider';
|
|
4
|
+
type AIDropdownGetSummaryProps = {
|
|
5
|
+
activeKey: AIDropdownMenuSubKeys;
|
|
6
|
+
setActiveKey: (active: AIDropdownMenuSubKeys) => void;
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
aiModel: LanguageModelV2;
|
|
9
|
+
};
|
|
10
|
+
declare const AIDropdownGetSummary: React.FC<AIDropdownGetSummaryProps>;
|
|
11
|
+
export default AIDropdownGetSummary;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
type ChatAIButtonProps = {
|
|
3
|
+
inputMessage: string;
|
|
4
|
+
changeInputMessage: (message: string) => void;
|
|
5
|
+
setProcessing: (processing: boolean) => void;
|
|
6
|
+
};
|
|
7
|
+
declare const ChatAIButton: React.FC<ChatAIButtonProps>;
|
|
8
|
+
export default ChatAIButton;
|
|
@@ -3,6 +3,7 @@ import { Dialogs } from 'connectycube/types';
|
|
|
3
3
|
export interface ChatInputProps {
|
|
4
4
|
onSendMessage: (message: string, dialog?: Dialogs.Dialog) => void;
|
|
5
5
|
onSendMessageWithAttachment: (files: File[]) => void;
|
|
6
|
+
setTextareaScrollOffset: React.Dispatch<React.SetStateAction<number>>;
|
|
6
7
|
}
|
|
7
8
|
declare const _default: React.NamedExoticComponent<ChatInputProps>;
|
|
8
9
|
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { CallType } from 'connectycube/types';
|
|
3
|
+
import { CallHistorySignal } from '../../../../hooks/useCallHistory';
|
|
4
|
+
export interface CallMessageProps {
|
|
5
|
+
signal: CallHistorySignal;
|
|
6
|
+
duration: number;
|
|
7
|
+
callType: CallType;
|
|
8
|
+
sentTime: string;
|
|
9
|
+
isCurrentUserSender: boolean;
|
|
10
|
+
isLastMessage: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare const CallMessage: React.FC<CallMessageProps>;
|
|
13
|
+
export default CallMessage;
|
|
@@ -35,7 +35,11 @@ export declare const shadcnClassNames: {
|
|
|
35
35
|
dropdownMenuSubTrigger: ClassValue;
|
|
36
36
|
dropdownMenuSubContent: ClassValue;
|
|
37
37
|
input: ClassValue[];
|
|
38
|
+
inputSelection: {
|
|
39
|
+
blue: string;
|
|
40
|
+
};
|
|
38
41
|
label: ClassValue;
|
|
42
|
+
skeleton: ClassValue;
|
|
39
43
|
switch: ClassValue;
|
|
40
44
|
switchThumb: ClassValue;
|
|
41
45
|
tabs: ClassValue;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const formatDuration: (seconds: number) => string;
|
|
@@ -10,3 +10,22 @@ export declare enum dataPrefix {
|
|
|
10
10
|
export declare const widgetFontSize = "15px";
|
|
11
11
|
export declare const widgetFontWeight = "400";
|
|
12
12
|
export declare const widgetExternalIdPrefix = "external_id";
|
|
13
|
+
export declare const AI_CURRENT_USER_POSTFIX = "::current_user";
|
|
14
|
+
export declare enum AIDropdownMenuSubKeys {
|
|
15
|
+
GET_SUMMARY = "ai:get-summary",
|
|
16
|
+
CHANGE_TONE = "ai:change-tone",
|
|
17
|
+
DEFAULT = "ai:default"
|
|
18
|
+
}
|
|
19
|
+
export declare enum ChatSummaryFilters {
|
|
20
|
+
LAST_7_DAYS = "last-7-days",
|
|
21
|
+
LAST_DAY = "last-day",
|
|
22
|
+
UNREADS = "unreads"
|
|
23
|
+
}
|
|
24
|
+
export declare enum InputMessageTones {
|
|
25
|
+
POSITIVE = "positive",
|
|
26
|
+
NEGATIVE = "negative",
|
|
27
|
+
CRINGE = "cringe"
|
|
28
|
+
}
|
|
29
|
+
export declare enum TempMessageTags {
|
|
30
|
+
AI_TEXT_SUMMARY = "ai-text-summary"
|
|
31
|
+
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export declare const resetStore: (force?: boolean) => void;
|
|
2
2
|
export { default as useActiveTabsStore } from './store/useActiveTabsStore';
|
|
3
3
|
export { default as useAlertBusyStore } from './store/useAlertBusyStore';
|
|
4
|
+
export { default as useAppAIStore } from './store/useAppAIStore';
|
|
4
5
|
export { default as useAppDefaultChatStore } from './store/useAppDefaultChatStore';
|
|
5
6
|
export { default as useAppInterfaceStore } from './store/useAppInterfaceStore';
|
|
6
|
-
export { default as useAppSettingsStore } from './store/useAppSettingsStore';
|
|
7
7
|
export { default as useAppNotificationStore } from './store/useAppNotificationStore';
|
|
8
8
|
export { default as useAppQuickActionsStore } from './store/useAppQuickActionsStore';
|
|
9
|
+
export { default as useAppSettingsStore } from './store/useAppSettingsStore';
|
|
9
10
|
export { default as useDraftMessagesStore } from './store/useDraftMessagesStore';
|
|
10
11
|
export { default as useOnlineUsersCountStore } from './store/useOnlineUsersCountStore';
|
|
11
12
|
export { default as useLinkPreviewStore } from './store/useLinkPreviewStore';
|
|
@@ -16,6 +17,7 @@ export { default as useUserSettingsStore } from './store/useUserSettingsStore';
|
|
|
16
17
|
export { default as useAppAuthorization } from './useAppAuthorization';
|
|
17
18
|
export { default as useAppPresets } from './useAppPresets';
|
|
18
19
|
export { default as useAudio } from './useAudio';
|
|
20
|
+
export { default as useCallHistory } from './useCallHistory';
|
|
19
21
|
export { default as useLastActivity } from './useLastActivity';
|
|
20
22
|
export { default as useNotification } from './useNotification';
|
|
21
23
|
export { default as usePageFocus } from './usePageFocus';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type AppAIStoreStateProps = {
|
|
2
|
+
changeMessageTone: boolean;
|
|
3
|
+
textSummarization: boolean;
|
|
4
|
+
apiKey: string;
|
|
5
|
+
};
|
|
6
|
+
interface AppAIStoreState extends AppAIStoreStateProps {
|
|
7
|
+
setChangeMessageTone: (changeMessageTone: boolean) => void;
|
|
8
|
+
setTextSummarization: (textSummarization: boolean) => void;
|
|
9
|
+
setApiKey: (apiKey: string) => void;
|
|
10
|
+
resetChangeMessageTone: () => void;
|
|
11
|
+
resetTextSummarization: () => void;
|
|
12
|
+
resetApiKey: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare const appAIStoreInitialState: AppAIStoreStateProps;
|
|
15
|
+
declare const useAppAIStore: import('zustand').UseBoundStore<import('zustand').StoreApi<AppAIStoreState>>;
|
|
16
|
+
export declare const setAppDefaultChatStore: (state: Partial<AppAIStoreStateProps>) => void;
|
|
17
|
+
export declare const resetAppDefaultChatStore: () => void;
|
|
18
|
+
export default useAppAIStore;
|
|
@@ -32,9 +32,14 @@ export type AppPresets = {
|
|
|
32
32
|
termsAndConditions?: string;
|
|
33
33
|
quickActions?: QuickActions;
|
|
34
34
|
defaultChat?: DefaultChat | null;
|
|
35
|
+
ai?: {
|
|
36
|
+
changeMessageTone?: boolean;
|
|
37
|
+
textSummarization?: boolean;
|
|
38
|
+
apiKey?: string;
|
|
39
|
+
};
|
|
35
40
|
onUnreadCountChange?: (count: number) => void;
|
|
36
41
|
onOnlineUsersCountChange?: (count: number) => void;
|
|
37
42
|
onOpenChange?: (open: boolean) => void;
|
|
38
43
|
};
|
|
39
|
-
declare const useAppPresets: ({ open, embedView, splitView, singleView, showChatStatus, showOnlineUsersTab, hideNewChatButton, hideNewUserChatOption, hideNewGroupChatOption, imgLogoSource, muted, showNotifications, playSound, webPushNotifications, serviceWorkerPath, webPushVapidPublicKey, attachmentsAccept, enableUserLogin, enableCalls, enableUserStatuses, enableLastSeen, enableContentReporting, enableBlockList, enableUrlPreview, limitUrlsPreviews, termsAndConditions, quickActions, defaultChat, singleViewChat, enableOnlineUsersBadge, getOnlineUsersInterval, onUnreadCountChange, onOnlineUsersCountChange, onOpenChange, }: AppPresets) => void;
|
|
44
|
+
declare const useAppPresets: ({ open, embedView, splitView, singleView, showChatStatus, showOnlineUsersTab, hideNewChatButton, hideNewUserChatOption, hideNewGroupChatOption, imgLogoSource, muted, showNotifications, playSound, webPushNotifications, serviceWorkerPath, webPushVapidPublicKey, attachmentsAccept, enableUserLogin, enableCalls, enableUserStatuses, enableLastSeen, enableContentReporting, enableBlockList, enableUrlPreview, limitUrlsPreviews, termsAndConditions, quickActions, defaultChat, singleViewChat, enableOnlineUsersBadge, getOnlineUsersInterval, ai, onUnreadCountChange, onOnlineUsersCountChange, onOpenChange, }: AppPresets) => void;
|
|
40
45
|
export default useAppPresets;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare enum CallHistorySignal {
|
|
2
|
+
ACCEPT = "accept",
|
|
3
|
+
REJECT = "reject",
|
|
4
|
+
NOT_ANSWER = "notAnswer",
|
|
5
|
+
HUNG_UP = "hungUp",
|
|
6
|
+
CANCEL = "cancel"
|
|
7
|
+
}
|
|
8
|
+
export type CallHistoryHook = {
|
|
9
|
+
sendAcceptCall: () => void;
|
|
10
|
+
sendRejectCall: () => void;
|
|
11
|
+
sendHungUpCall: () => void;
|
|
12
|
+
sendNotAnswerCall: () => void;
|
|
13
|
+
};
|
|
14
|
+
declare function useCallHistory(): CallHistoryHook;
|
|
15
|
+
export default useCallHistory;
|
|
@@ -103,7 +103,31 @@ declare const _default: {
|
|
|
103
103
|
"Next": "Επόμενο"
|
|
104
104
|
},
|
|
105
105
|
"SingleViewChatError": "Δεν βρέθηκαν αντίπαλοι για τη συνομιλία",
|
|
106
|
-
"Information": "Πληροφορίες"
|
|
106
|
+
"Information": "Πληροφορίες",
|
|
107
|
+
"AI": {
|
|
108
|
+
"GetSummary": "Λήψη σύνοψης",
|
|
109
|
+
"ChangeMessageTone": "Αλλαγή τόνου μηνύματος",
|
|
110
|
+
"SummaryMessageTitle": "Μόνο εσείς μπορείτε να δείτε αυτό το μήνυμα",
|
|
111
|
+
"forLast7Days": "για τις τελευταίες 7 ημέρες",
|
|
112
|
+
"forLastDay": "για την τελευταία ημέρα",
|
|
113
|
+
"forUnreads": "για μη αναγνωσμένα",
|
|
114
|
+
"MessageTone": "Αλλαγή τόνου μηνύματος",
|
|
115
|
+
"EmptyMessage": "Δεν είναι δυνατή η αλλαγή του τόνου ενός κενού μηνύματος",
|
|
116
|
+
"positive": "θετικός",
|
|
117
|
+
"negative": "αρνητικός",
|
|
118
|
+
"cringe": "κρίμα"
|
|
119
|
+
},
|
|
120
|
+
"CallHistory": {
|
|
121
|
+
"RejectedIncoming": "Απορρίφθηκε εισερχόμενη κλήση",
|
|
122
|
+
"RejectedOutgoing": "Απορρίφθηκε εξερχόμενη κλήση",
|
|
123
|
+
"Unanswered": "Μη απαντημένη κλήση",
|
|
124
|
+
"Missed": "Αναπάντητη κλήση",
|
|
125
|
+
"Canceled": "Ακυρώθηκε",
|
|
126
|
+
"Ended": "Ολοκληρώθηκε",
|
|
127
|
+
"videoCall": "βιντεοκλήση",
|
|
128
|
+
"audioCall": "ηχητική κλήση",
|
|
129
|
+
"defaultCall": "κλήση"
|
|
130
|
+
}
|
|
107
131
|
}
|
|
108
132
|
;
|
|
109
133
|
|
|
@@ -103,7 +103,31 @@ declare const _default: {
|
|
|
103
103
|
"Next": "Next"
|
|
104
104
|
},
|
|
105
105
|
"SingleViewChatError": "Opponent(s) for the chat not found",
|
|
106
|
-
"Information": "Information"
|
|
106
|
+
"Information": "Information",
|
|
107
|
+
"AI": {
|
|
108
|
+
"GetSummary": "Get summary",
|
|
109
|
+
"ChangeMessageTone": "Change message tone",
|
|
110
|
+
"SummaryMessageTitle": "Only you can see this message",
|
|
111
|
+
"forLast7Days": "for last 7 days",
|
|
112
|
+
"forLastDay": "for last day",
|
|
113
|
+
"forUnreads": "for unreads",
|
|
114
|
+
"MessageTone": "Change message tone",
|
|
115
|
+
"EmptyMessage": "Can't change tone of empty message",
|
|
116
|
+
"positive": "positive",
|
|
117
|
+
"negative": "negative",
|
|
118
|
+
"cringe": "cringe"
|
|
119
|
+
},
|
|
120
|
+
"CallHistory": {
|
|
121
|
+
"RejectedIncoming": "Rejected incoming",
|
|
122
|
+
"RejectedOutgoing": "Rejected outgoing",
|
|
123
|
+
"Unanswered": "Unanswered",
|
|
124
|
+
"Missed": "Missed",
|
|
125
|
+
"Canceled": "Canceled",
|
|
126
|
+
"Ended": "Ended",
|
|
127
|
+
"videoCall": "video call",
|
|
128
|
+
"audioCall": "audio call",
|
|
129
|
+
"defaultCall": "call"
|
|
130
|
+
}
|
|
107
131
|
}
|
|
108
132
|
;
|
|
109
133
|
|
|
@@ -103,7 +103,31 @@ declare const _default: {
|
|
|
103
103
|
"Next": "Далі"
|
|
104
104
|
},
|
|
105
105
|
"SingleViewChatError": "Опонента(ів) для чату не знайдено",
|
|
106
|
-
"Information": "Інформація"
|
|
106
|
+
"Information": "Інформація",
|
|
107
|
+
"AI": {
|
|
108
|
+
"GetSummary": "Отримати резюме",
|
|
109
|
+
"ChangeMessageTone": "Змінити тон повідомлення",
|
|
110
|
+
"SummaryMessageTitle": "Тільки ти можеш бачити це повідомлення",
|
|
111
|
+
"forLast7Days": "за останні 7 днів",
|
|
112
|
+
"forLastDay": "за останній день",
|
|
113
|
+
"forUnreads": "для непрочитаних",
|
|
114
|
+
"MessageTone": "Змінити тон повідомлення",
|
|
115
|
+
"EmptyMessage": "Неможливо змінити тон пустого повідомлення",
|
|
116
|
+
"positive": "позитивний",
|
|
117
|
+
"negative": "негативний",
|
|
118
|
+
"cringe": "крінж"
|
|
119
|
+
},
|
|
120
|
+
"CallHistory": {
|
|
121
|
+
"RejectedIncoming": "Відхилений вхідний",
|
|
122
|
+
"RejectedOutgoing": "Відхилений вихідний",
|
|
123
|
+
"Unanswered": "Неприйнятий",
|
|
124
|
+
"Missed": "Пропущений",
|
|
125
|
+
"Canceled": "Скасований",
|
|
126
|
+
"Ended": "Завершений",
|
|
127
|
+
"videoCall": "відео виклик",
|
|
128
|
+
"audioCall": "аудіо виклик",
|
|
129
|
+
"defaultCall": "виклик"
|
|
130
|
+
}
|
|
107
131
|
}
|
|
108
132
|
;
|
|
109
133
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@connectycube/chat-widget",
|
|
3
3
|
"description": "A React component that seamlessly integrates ConnectyCube's real-time chat capabilities into your web applications. This widget offers an out-of-the-box solution for embedding chat features—such as instant messaging, user presence, and file sharing—without the overhead of building a complete chat system from scratch.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.34.0",
|
|
5
5
|
"license": "GPL-3.0-only",
|
|
6
6
|
"homepage": "https://github.com/ConnectyCube/connectycube-chat-widget#readme",
|
|
7
7
|
"bugs": {
|
|
@@ -79,53 +79,59 @@
|
|
|
79
79
|
"test": "vitest",
|
|
80
80
|
"test:ci": "vitest run",
|
|
81
81
|
"coverage": "vitest run --coverage",
|
|
82
|
-
"version": "
|
|
82
|
+
"version": "node ./scripts/bump-version.cjs",
|
|
83
|
+
"version:patch": "npm run version patch",
|
|
84
|
+
"version:minor": "npm run version minor",
|
|
85
|
+
"version:major": "npm run version major",
|
|
86
|
+
"changelog": "node ./scripts/changelog.cjs"
|
|
83
87
|
},
|
|
84
88
|
"dependencies": {
|
|
89
|
+
"@ai-sdk/google": "^2.0.7",
|
|
85
90
|
"@connectycube/use-calls": "^0.12.1",
|
|
86
|
-
"@connectycube/use-chat": "^0.
|
|
87
|
-
"@radix-ui/react-alert-dialog": "^1.1.
|
|
91
|
+
"@connectycube/use-chat": "^0.27.0",
|
|
92
|
+
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
88
93
|
"@radix-ui/react-avatar": "^1.1.10",
|
|
89
|
-
"@radix-ui/react-checkbox": "^1.3.
|
|
90
|
-
"@radix-ui/react-dialog": "^1.1.
|
|
91
|
-
"@radix-ui/react-dropdown-menu": "^2.1.
|
|
94
|
+
"@radix-ui/react-checkbox": "^1.3.3",
|
|
95
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
96
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
92
97
|
"@radix-ui/react-label": "^2.1.7",
|
|
93
98
|
"@radix-ui/react-slot": "^1.2.3",
|
|
94
|
-
"@radix-ui/react-switch": "^1.2.
|
|
95
|
-
"@radix-ui/react-tabs": "^1.1.
|
|
96
|
-
"@radix-ui/react-tooltip": "^1.2.
|
|
99
|
+
"@radix-ui/react-switch": "^1.2.6",
|
|
100
|
+
"@radix-ui/react-tabs": "^1.1.13",
|
|
101
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
102
|
+
"ai": "^5.0.18",
|
|
97
103
|
"class-variance-authority": "^0.7.1",
|
|
98
104
|
"clsx": "^2.1.1",
|
|
99
105
|
"connectycube": "^4.7.1",
|
|
100
106
|
"get-browser-fingerprint": "^4.1.0",
|
|
101
|
-
"i18next": "^25.3.
|
|
102
|
-
"linkify-react": "^4.3.
|
|
103
|
-
"linkifyjs": "^4.3.
|
|
104
|
-
"lucide-react": "^0.
|
|
107
|
+
"i18next": "^25.3.6",
|
|
108
|
+
"linkify-react": "^4.3.2",
|
|
109
|
+
"linkifyjs": "^4.3.2",
|
|
110
|
+
"lucide-react": "^0.540.0",
|
|
105
111
|
"next-themes": "^0.4.6",
|
|
106
|
-
"react-hook-form": "^7.
|
|
107
|
-
"react-i18next": "^15.6.
|
|
112
|
+
"react-hook-form": "^7.62.0",
|
|
113
|
+
"react-i18next": "^15.6.1",
|
|
108
114
|
"react-icons": "^5.5.0",
|
|
109
115
|
"react-intersection-observer": "^9.16.0",
|
|
110
116
|
"react-player": "^2.16.1",
|
|
111
|
-
"sonner": "^2.0.
|
|
117
|
+
"sonner": "^2.0.7",
|
|
112
118
|
"virtua": "^0.41.5",
|
|
113
|
-
"zustand": "^5.0.
|
|
119
|
+
"zustand": "^5.0.8"
|
|
114
120
|
},
|
|
115
121
|
"peerDependencies": {
|
|
116
122
|
"react": ">=18",
|
|
117
123
|
"react-dom": ">=18"
|
|
118
124
|
},
|
|
119
125
|
"devDependencies": {
|
|
120
|
-
"@eslint/js": "^9.
|
|
121
|
-
"@tailwindcss/postcss": "^4.1.
|
|
122
|
-
"@tailwindcss/vite": "^4.1.
|
|
123
|
-
"@types/node": "^24.0
|
|
124
|
-
"@types/react": "^19.1.
|
|
125
|
-
"@types/react-dom": "^19.1.
|
|
126
|
-
"@vitejs/plugin-react": "^
|
|
126
|
+
"@eslint/js": "^9.33.0",
|
|
127
|
+
"@tailwindcss/postcss": "^4.1.12",
|
|
128
|
+
"@tailwindcss/vite": "^4.1.12",
|
|
129
|
+
"@types/node": "^24.3.0",
|
|
130
|
+
"@types/react": "^19.1.10",
|
|
131
|
+
"@types/react-dom": "^19.1.7",
|
|
132
|
+
"@vitejs/plugin-react": "^5.0.1",
|
|
127
133
|
"@vitest/coverage-v8": "^3.2.4",
|
|
128
|
-
"eslint": "^9.
|
|
134
|
+
"eslint": "^9.33.0",
|
|
129
135
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
130
136
|
"eslint-plugin-react-refresh": "^0.4.20",
|
|
131
137
|
"globals": "^16.3.0",
|
|
@@ -133,17 +139,17 @@
|
|
|
133
139
|
"prettier": "3.6.2",
|
|
134
140
|
"tailwind-merge": "^3.3.1",
|
|
135
141
|
"tailwind-scrollbar": "^4.0.2",
|
|
136
|
-
"tailwindcss": "^4.1.
|
|
137
|
-
"tw-animate-css": "^1.3.
|
|
138
|
-
"typescript": "^5.
|
|
139
|
-
"typescript-eslint": "^8.
|
|
140
|
-
"vite": "^7.
|
|
142
|
+
"tailwindcss": "^4.1.12",
|
|
143
|
+
"tw-animate-css": "^1.3.7",
|
|
144
|
+
"typescript": "^5.9.2",
|
|
145
|
+
"typescript-eslint": "^8.40.0",
|
|
146
|
+
"vite": "^7.1.3",
|
|
141
147
|
"vite-plugin-dts": "^4.5.4",
|
|
142
148
|
"vitest": "^3.2.4"
|
|
143
149
|
},
|
|
144
150
|
"optionalDependencies": {
|
|
145
|
-
"@rollup/rollup-linux-x64-gnu": "4.46.
|
|
146
|
-
"@tailwindcss/oxide-linux-x64-gnu": "^4.1.
|
|
151
|
+
"@rollup/rollup-linux-x64-gnu": "4.46.4",
|
|
152
|
+
"@tailwindcss/oxide-linux-x64-gnu": "^4.1.12",
|
|
147
153
|
"lightningcss-linux-x64-gnu": "^1.30.1"
|
|
148
154
|
},
|
|
149
155
|
"engines": {
|